@Xiaobuyi
2017-09-11T14:18:29.000000Z
字数 1856
阅读 1722
其他
本代码是rbx1部分节点的C++版本。
《ROS入门实例》31页到34页的运动控制的分层结构,主要针对各层包含的大致的内容和一些开源方案。
主要涉及以下内容:
(1) tf树的概念
(2) 如果广播机器人的坐标系并构造tf树
(3) 如何监听指定的两个tf树节点。
sudo apt-get install ros-indigo-arbotix- *
或者选择源码的安装方式(推荐)
https://github.com/pirobot/rbx1
git clone https://github.com/pirobot/rbx1.git
Ros使用Twist消息发布运动指令给基控制器,可以通过下面命令查看Twist消息,
rosmsg show geometry_msgs/Twist
{linear: {x: 0.1, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}
在已经成功安装了ArbotiX的基础上,运行下面命令,启动一个模拟的Turtlebot:
roslaunch rbx1_bringup fake_turtlebot.launch
在RViz中查看模拟机器人
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
发布一个Twist消息,使机器人实现顺时针的圆周运动
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.1, y: 0, z: 0}, angular: {x: 0, y: 0, z: -0.5}}'
“Ctrl-C”停止上一个消息之后,发布一个空的Twist消息,使机器人停止运动
rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'
在rbx1中一个topic的作用周期是3s,所以可以发布一条消息包含模拟机器人两种不同的运动。发布下面的消息,使模拟机器人前行3s之后循环做逆时针的圆周运动。
rostopic pub -1 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0,z: 0}, angular: {x: 0, y: 0, z: 0}}'; rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'
发布空消息,停止机器人运动,关闭窗口。
首先启动模拟机器人和RViz监视窗口
roslaunch rbx1_bringup fake_turtlebot.launch
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
然后启动定时运动节点
rosrun rbx1_control timed_out_and_back
首先启动模拟机器人和RViz监视窗口
roslaunch rbx1_bringup fake_turtlebot.launch
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
然后启动测量反馈运动节点
rosrun rbx1_control odom_out_and_back
首先启动模拟机器人和RViz监视窗口
roslaunch rbx1_bringup fake_turtlebot.launch
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
然后启动走正方形节点
rosrun rbx1_control Move_square
首先启动模拟机器人和RViz监视窗口
roslaunch rbx1_bringup fake_turtlebot.launch
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
然后启动键盘控制节点
rosrun rbx1_control Keyboard_Control
将光标停留在遥控终端窗口,输入wsad
,机器人会按照对应的方向移动,shift
按键会加速移动。
注:键盘控制节点代码出自古-月的CSDN博客。