ROS室内仿真环境

摘要

本节笔记主要记录ROS室内仿真环景的具体演示过程和

  • [x] Edit By Porter, 积水成渊,蛟龙生焉。

《机器人操作系统入门》课程代码示例


前言

欢迎来到中国大学MOOC—《机器人操作系统入门》课程,本ROS软件包是课程的代码示例,课程中使用的例子均出自本代码包。除了代码包,课程还提供讲义,欢迎各位朋友下载、学习和分享。

本示例包含了XBot机器人和中科院软件博物馆仿真、ROS通信示例程序、导航与SLAM功能演示,在每个软件包下都有相应的功能介绍。

Gazebo仿真效果

如果你遇到任何问题,可以在Github上方的issues栏目中提问,我们课程团队会耐心回答。本示例将长期维护不断更新,如果你认可我们的工作,请点击右上角的star按钮,您的鼓励是我们的动力。


示例介绍

本仓库为ROS入门教程的代码示例,包括以下ROS软件包:

软件包内容
robot_sim_demo机器人仿真程序,大部分示例会用到这个软件包
topic_demotopic通信,自定义msg,包括C++和python两个版本实现
service_demoservice通信,自定义srv,分别以C++和python两种语言实现
action_demoaction通信,自定义action,C++和python两种语言实现
param_demoparam操作,分别以C++和python两种语言实现
msgs_demo演示msg、srv、action文件的格式规范
tf_demotf相关API操作演示,tf示例包括C++和python两个版本
tf_follower制作mybot机器人 实现mybot跟随xbot的功能
urdf_demo创建机器人urdf模型,在RViz中显示
navigation_sim_demo导航演示工具包,包括AMCL, Odometry Navigation等演示
slam_sim_demo同步定位与建图演示,包括Gmapping, Karto, Hector等SLAM演示
robot_orbslam2_demoORB_SLAM2的演示
ros_academy_for_beginnersMetapacakge示例,依赖了本仓库所有的pacakge

下载和编译

  1. 克隆或下载ROS-Academy-for-Beginners教学包到工作空间的/src目录下,例如 ~/catkin_ws/src
1
2
$ cd ~/catkin_ws/src
$ git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
  1. 安装教学包所需的依赖
1
2
$ cd ~/catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

如果安装失败,出现如下的错误信息:

1
2
3
4
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies:
slam_sim_demo: No definition of [hector_mapping] for OS [debian]
navigation_sim_demo: No definition of [dwa_local_planner] for OS [debian]
robot_sim_demo: No definition of [yocs_cmd_vel_mux] for OS [debian]

可以执行如下的命令(在ubuntu16下对应-xenial)

1
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y --os=ubuntu:xenial
  1. 编译并刷新环境
1
2
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
  1. 运行示例

运行须知

  1. 建议在本地Ubuntu 16.04下运行仿真程序。目前Gazebo模拟器的兼容性是一大问题,在虚拟机或配置较低的电脑上可能无法运行。如果你的显卡是N卡,建议安装Ubuntu下的显卡驱动

  2. 运行Gazebo仿真程序robot_sim_demo前,请将Gazebo升级到7.x版本以上(推荐7.9版本)。

查看Gazebo版本方法

1
$ gazebo -v   #确认7.0以上,推荐7.9

升级方法

1
2
3
4
$ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
$ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install gazebo7
  1. 确保所有依赖都已安装,如gazebo_ros, gmapping, slam_karto, amcl

Logo

项目运行

ROS 场景搭建


前言

目前这个项目是借鉴的XBot机器人和中科院软件博物馆仿真,在此做操作备注

Gazebo仿真效果

运行指令如下

1. 编译并刷新环境

1
2
3
$ cd to/catkin_ws/
$ catkin_make
$ source ./devel/setup.bash #source devel/setup.bash

2.执行打开指令

1
2
3
porter@porter-Aspire:~/ROS_Project/catkin_ws$ source ./devel/setup.bash
porter@porter-Aspire:~/ROS_Project/catkin_ws$ rospack profile
porter@porter-Aspire:~/ROS_Project/catkin_ws$ roslaunch robot_sim_demo robot_spawn.launch

3.等待启动

将会花费数秒时间,然后才会出现效果

4.运行

1
2
porter@porter-Aspire:~/ROS_Project/catkin_ws$ source devel/setup.bash
porter@porter-Aspire:~/ROS_Project/catkin_ws$ rosrun robot_sim_demo robot_keyboard_teleop.py
  • 注意每次运行rosrun 都source一下。

聚焦控制程序窗口,按下i、j、l等按键,这样你就可以通过键盘来控制机器人的移动了。
javascript:void(0);

文章目录
  1. 1. 摘要
  2. 2. 《机器人操作系统入门》课程代码示例
    1. 2.1. 前言
    2. 2.2. 示例介绍
    3. 2.3. 下载和编译
    4. 2.4. 运行须知
    5. 2.5. Copyright
    6. 2.6. 项目运行
  3. 3. ROS 场景搭建
    1. 3.1. 前言
    2. 3.2. 运行指令如下
      1. 3.2.1. 1. 编译并刷新环境
      2. 3.2.2. 2.执行打开指令
      3. 3.2.3. 3.等待启动
      4. 3.2.4. 4.运行
|