【任务2】:
用simulator: RViz 工具,完成对小车的建模,名字drive RViz = dvrv, 用 dvrv_node 发布topic和数据格式,向它发送位置指令,使它能接受键盘输入,并完成前进,后退,转弯90°功能。
Topic, 还是拟用/turtle1/cmd_vel
Message Type: geometry_msgs/Twist
-----------
1. RViz介绍
参考:RViz Package Link: http://wiki.ros.org/rviz
内含:RViz User Guide: http://wiki.ros.org/rviz/UserGuide
RViz Tutorials: http://wiki.ros.org/rviz/Tutorials
rviz是一个显示机器人实体的工具,本身不具有模拟的功能,需要安装一个模拟器arbotix。但官网有关arbotix的资料很缺,跟另一个“10分钟上手玩ROS仿真”http://blog.exbot.net/archives/899, 对比一个不work的教程:ros_by_example_1_hydro.pdf (6.2 Testing the Simulator),有兴趣可以研究5. Installing the ros-by-example Code以后,再玩6.2, 估计就work了。本次就不深入那个。
2. 用ExBot机器人实验室的包来仿真
打开terminal,输入命令:
roslaunch exbotxi_rviz view_model.launch
ExBot XI移动机器人平台兼容turtlebot了,这里就用turtlebot包的键盘控制node来控制机器人移动。
Ctrl + C 结束掉前面的程序,关闭terminal,然后再打开3个terminal,分别输入下面的3个命令:
roslaunch exbotxi_bringup fake_exbotxi.launch
roslaunch exbotxi_rviz view_mobile.launch
roslaunch turtlebot_teleop keyboard_teleop.launch
第1条命令用于启动ExBot XI仿真机器人,启动成功后显示信息如下:
第2条命令用于打开ROS可视化工具rviz,并加载移动机器人视图配置。
第3条命令用于启动键盘控制node。
现在将光标focus在第3条命令的terminal窗口,便可以通过键盘控制仿真机器人了:
3. 拆解ExBot机器人实验室的包
首先打开fake_exbotxi.launch文件。( ~/catkin_ws/src/exbot_xi/exbotxi_bringup/launch )
文件可以大概分为四个部分:
(1) 从指定的包中加载urdf文件
(2) 启动arbotix模拟器
(3) 启动状态发布节点
(4) tf 坐标系配置--本次可能没有
<launch> <arg name="urdf_file" default="$(find xacro)/xacro.py '$(find exbotxi_description)/urdf/exbotxi.urdf.xacro'" /> <param name="robot_description" command="$(arg urdf_file)" /> <node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen"> <rosparam command="delete" param="/arbotix" /> <rosparam file="$(find exbotxi_bringup)/config/fake_irobot_create_arbotix.yaml" command="load" /> <param name="sim" value="true"/> <remap from="cmd_vel" to="mobile_base/commands/velocity"/> </node> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"> <param name="publish_frequency" type="double" value="8.0" /> </node> <node pkg="topic_tools" type="mux" name="exbotxi_mux1" args="mobile_base/commands/velocity cmd_vel_mux/input/teleop" /> <node pkg="topic_tools" type="mux" name="exbotxi_mux2" args="mobile_base/commands/velocity cmd_vel" /> </launch>
接下来的几个教程都要follow这个古月居的博客了,古月居的专栏:http://blog.csdn.net/column/details/ros-explore.html
附录:安装arbotix
安装 arbotix : (如果联网有问题,还原网络设定,hosts文件有关的设定,http://blog.csdn.net/sonictl/article/details/46986565)
$ sudo apt-get install ros-hydro-arbotix
然后加入ros package路径:
$ rospack profile
参考:http://blog.csdn.net/scliu12345/article/details/44521327
测试仿真器:
$ roslaunch rbx1_bringup fake_turtlebot.launch
遇到错误,[fake_turtlebot.launch] is neither a launch file in package [rbx1_bringup] nor is [rbx1_bringup] a launch file name,
找了半天估计是跟错教程了,果断换