这里我们尝试使用一下rbx1机器人的仿真程序,主要参考文献是下面的这篇博客:
https://blog.youkuaiyun.com/shuipengpeng/article/details/80738062
1、首先,我们安装一下turtlebot,输入下列安装命令:
$ sudo apt-get install ros-kinetic-turtlebot-*
这里安装的时候报错了,不过忽略后似乎没有影响后面的使用。
2、然后安装arbotix模拟器:
$ sudo apt-get install ros-kinetic-arbotix-*
这里没有执行上面的rviz的安装是因为在安装ROS的时候默认已经安装好了,不需要重复安装。
3、下载并安装rbx1.
$ cd ~/exper/src
$ git clone https://github.com/pirobot/rbx1.git
$ cd ..
$ catkin_make
4、启动仿真环境:
运行机器人节点:
$ roslaunch rbx1_bringup fake_turtlebot.launch
这里会有一个关于模型的警告,可以忽略。
使用测试地图运行amcl节点:
$ roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml
运行rviz
$ rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz
这时我们就可以看到一个地图以及地图中的小机器人了。我们使用rviz中的一个工具:2D Nav Goal。选择后在地图空白处任意点一个位置,鼠标不要放掉就可以出现一个方向箭头,任意选择一个方向松开鼠标,机器人就会朝着这个位姿运动了。
扩展:
1、地图的更改
如果要使用别的地图,可以在rbx1-rbx_nav-maps中找到一个空白地图,另外通过之前的roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml命令我们可以看到其调用的是test_map.yaml参数,这里我们打开这个文件看一下,它一共只有六行内容,第一行是调用具体的地图名称,下面的一些地图显示参数。我们只要把第一行的地图名称修改掉,例如我改为这里的blank_map.pgm,重新执行上述命令就可以得到一个小机器人以及一个空白地图。
2、参数监听
通过
$ rostopic list /+Tab键
我们查找整个程序发布的消息,这里大概有二三十个消息,我们可以选择监听其中一部分消息,例如
$ rostopic echo /odom
$ rostopic echo /cmd_vel
这些参数用于小车的速度以及方向控制。
3、rqt_graph
使用rqt工具查看程序框架:
通过这个框架我们可以看出来消息的传递,例如cmd_vel是move_base传递给arbotix的消息,与之前arbotix中的消息机制是一样的,而arbotix接受cmd_vel消息后经过运算给出一个odom里程计数据,它被两部分订阅。move_base用于再运算,fake_licalization用于仿真小车的移动。
- List item