今天尝试跟着ROS探索总结-4.简单的机器人仿真做了一遍,中间问题还是出现有不少,记录一下过程,并且有个想法等待实现(文中提到)。
- 建立工作空间
mkdir -p ~/rbx/src
cd ~/rbx/src
- 从GitHub中下载代码
git clone https://github.com/pirobot/rbx1.git
cd ..
- 编译
cd ~/rbx
catkin_make
完成环境路径设置
echo 'source ~/rbx/devel/setup.bash' >> ~/.bashrc
sudo edit ~/.bashrc
添加:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/rbx/src
,保存退出
source ~/.bashrc
- 安装机器人模拟器
rviz是一个显示机器人实体的工具,本身不具有模拟的功能,需要安装一个模拟器arbotix
sudo apt-get install ros-kinetic-arbotix
rospack profile
-
TurtleBot机器人的模拟
运行ROS:
新终端运行:roscore
新终端运行:roslaunch rbx1_bringup fake_pi_robot.launch
rviz启动后左侧displays中会红色显示:rosrun rviz rviz -d rospack find rbx1_nav/sim.rviz
只需将上方Global status:Erro Fixed Frame [map] does not exist
右侧改为Global Options->Fixed frame
,下方odom
按钮添加Add
和RobotModel
模块,然后Odometry
退出,重新执行上述File->Save Config
rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
即可。
如图所示:
图中右侧
Views
为视角,其中
Orbit
为后方视角,可以选择
TopDownOrtho
为俯视视角。
- 此时的机器人是静止的,需要发布一个消息才能让它动起来。
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}}'
如果要让机器人停下来,需要在中断中按下
Ctrl+C
,然后输入:
rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'
也可以改变发送的topic信息,使机器人走出不同的轨迹。
此处有个后续的想法,之前一直在弄matlab与ROS的通信以及远程控制小乌龟运动,其中发布的
topic
和
node
同样也分别为
/cmd_vel
和
geometry_msgs
,所以接下来想在matlab中来远程控制TurtleBot机器人进行运动。
另外最后找到一个带图的新版blogROS探索总结-4.简单的机器人仿真