天天看点

20191013-跟着做简单的TurtleBot机器人仿真

今天尝试跟着ROS探索总结-4.简单的机器人仿真做了一遍,中间问题还是出现有不少,记录一下过程,并且有个想法等待实现(文中提到)。

  1. 建立工作空间
mkdir -p ~/rbx/src
cd ~/rbx/src
           
  1. 从GitHub中下载代码
git clone https://github.com/pirobot/rbx1.git
cd ..
           
  1. 编译
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
           
  1. 安装机器人模拟器

rviz是一个显示机器人实体的工具,本身不具有模拟的功能,需要安装一个模拟器arbotix

sudo apt-get install ros-kinetic-arbotix
rospack profile
           
  1. TurtleBot机器人的模拟

    运行ROS:

    roscore

    新终端运行:

    roslaunch rbx1_bringup fake_pi_robot.launch

    新终端运行:

    rosrun rviz rviz -d rospack find rbx1_nav/sim.rviz

    rviz启动后左侧displays中会红色显示:

    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
           

即可。

如图所示:

20191013-跟着做简单的TurtleBot机器人仿真

图中右侧

Views

为视角,其中

Orbit

为后方视角,可以选择

TopDownOrtho

为俯视视角。

  1. 此时的机器人是静止的,需要发布一个消息才能让它动起来。
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.简单的机器人仿真