机器人操作系统ROS笔记--从仿真开始

    对于新手来说,自行学习建造一个自动化的机器人是很困难的,因为机器人学覆盖面很广,涉及到大量的硬件和软件知识,这都需要深入了解。尽管ROS可以搭建在多种硬件之上,但是并不一定要有一个真实的机器人才能开始学习它。ROS包括许多能在模拟环境中运行机器人的程序包,以便在真实的世界里冒险之前就可以测试有关程序。

    ROS运行的上位机可以是Raspberry Pi,TK1/TX1, BeagleBone, 笔记本电脑等,对于仿真应用来说,采用笔记本即可。
    ROS不同版本的语义不尽相同,这里采用的软件版本是:

    Software

    • ROS: Indigo version 1.11.20
    • OS: Ubuntu 14.04
    • Gazebo 5.3.0

    设置工作环境:

    // 安装git svn 
    $ sudo apt-get update
    $ sudo apt-get install git subversion mercurial
    // 安装ROS
    $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
    $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
    $ sudo apt-get update
    $ sudo apt-get install ros-indigo-desktop-full
    $ sudo rosdep init
    $ rosdep update
    $ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
    $ source ~/.bashrc
    // 安装catkin Command Line Tools
    $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
    $ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
    $ sudo apt-get update
    $ sudo apt-get install python-catkin-tools
    // 安装Gazebo
    $ curl -ssL http://get.gazebosim.org | sh
    // Create workspace:
    $ mkdir -p ~/catkin_ws/src
    $ cd ~/catkin_ws/src
    $ catkin_init_workspace
    // Build the workspace:
    $ cd ~/catkin_ws/
    $ catkin build
    // Source your workspace:
    $ source devel/setup.bash

    推荐两个入门的范例:
    https://github.com/richardw05/mybot_ws
    https://github.com/pirobot/rbx1

    区别是使用的仿真器不同,分别使用Gazebo和Arbotix,下面使用arbotix作为示例:

    $ sudo apt-get install ros-indigo-arbotix-*
    $ rospack profile
    $ roslaunch rbx1_bringup fake_pi_robot.launch

    如果正常可以得到如下启动信息:

    机器人操作系统ROS笔记--从仿真开始_第1张图片

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

    调出RViz可以看到模拟的机器人pirobot.

    机器人操作系统ROS笔记--从仿真开始_第2张图片

    $ rostopic pub -r 5 /cmd_vel geometry_msgs/Twist 
    '{linear: {x: 0.2, y: 0, z: 0}, 
    angular: {x: 0, y: 0, z: 0.5}}'

    该命令可以使机器人按照逆时针圆圈方向运动:

    机器人操作系统ROS笔记--从仿真开始_第3张图片

    发布一个空消息来停止机器人的运动,reset按键可以清屏。

    $ rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'

    进入launch目录:

    roscd rbx1_bringup/launch

    可以自定义启动文件:

    cp fake_turtlebot.launch fake_my_robot.launch

    你可能感兴趣的:(robotics,ros,linux,机器人,ROS,仿真)