4 机器人仿真

  • 机器人URDF模型优化
  • ArbotiX+rviz功能仿真
  • Gazebo物理仿真环境搭建

机器人URDF模型优化

URDF模型的进化版本——xacro模型文件

精简模型代码

  • 创建宏定义
  • 文件包含

提供可编程接口

  • 常量
  • 变量
  • 数字计算
  • 条件语句
常量定义

常量定义

常量使用

数学计算


注意:所有数学运算都会转换成浮点数进行,以保证运算精度

宏定义

宏定义

......

宏调用

文件包含

模型显示

方法一.将xacro文件转换成URDF文件后显示
rosrun xacro xacro.py mbot.xacro > mbot.urdf
方法二.直接调用xacro文件解析器(在launch文件中进行)

ArbotiX+rviz功能仿真

ArbotiX:

  • 一种控制电机、舵机的硬件控制板
  • 提供了相应的ROS功能包
  • 提供了一个差速控制器,通过接受速度控制指令,更新机器人的里程计状态。
    ps.http://wiki.ros.org/arbotix
安装Arbotix功能包

git clone https://github.com/vanadiumlabs/arbotix_ros.git
catkin_make

注意:arbotix_ros中的Python文件需要添加可执行权限


添加可执行权限
配置ArbotiX控制器

第一步:创建launch文件arbotix_mbot_with_camera_xacro.launch


    
    

    

    
    

    
        
        
    

    
    

    
    

    
    



第二步:创建配置文件

controllers: {
   base_controller: {
       type: diff_controller, 
       base_frame_id: base_footprint, 
       base_width: 0.26, 
       ticks_meter: 4100, 
       Kp: 12, 
       Kd: 12, 
       Ki: 0, 
       Ko: 50, 
       accel_limit: 1.0 
    }
}

第三步:启动仿真器
roslaunch mbot_description arbotix_mbot_with_camera_xacro.launch

第四步:启动键盘控制
另外打开一个终端,输入指令

导航仿真示例

安装turtlebot包
sudo apt-get install ros-kinetic-turtlebot-*

安装ROS by example书配套的代码包rbx1
cd ~/catkin_ws/src
git clone https://github.com/pirobot/rbx1.git
cd ..
catkin_make

运行示例程序
roslaunch rbx1_bringup fake_turtlebot.launch
roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml
rosrun rviz rviz -d rospack find rbx1_nav/nav.rviz
运行结果:点击rviz画面中的2D Nav Goal 随便标记地图中的一点,小车可以根据路径规划进行导航

在三个终端中输入上述三个命令,结果如图

导航效果如图

Gazebo物理仿真环境搭建

  • ros_control

ROS为开发者提供的机器人控制中间件
包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等等
可以帮助机器人应用功能包快速落地,提高开发效率

  • 常用控制器(Controllers)

joint_effort_controller
joint_state_controller
joint_position_controller
joint_velocity_controller

  • 仿真步骤

配置机器人模型
创建仿真环境
开始仿真

配置物理仿真模型

1.为link添加惯性参数和碰撞属性
2.为link添加gazebo标签
3.为joint添加传动装置
4.添加gazebo控制器插件





创建仿真环境

在gazebo中加载机器人模型
view_mbot_gazebo_empty_world.launch

空环境中的机器人
roslaunch mbot_gazebo view_mbot_gazebo_empty_world.launch

启动之后的效果
创建仿真环境的两种方法

方法一:直接添加仿真环境


点击左上角Insert,选择模型添加至环境

方法二:使用Building Editor


编辑效果

编辑
保存

加载
启动

开始仿真

启动仿真环境

roslaunch mbot_gazebo view_mbot_gazebo_play_ground.launch


启动成功

启动键盘控制 roslaunch mbot_teleop mbot_teleop.launch

查看里程计信息rostopic echo odom

传感器仿真

  • 摄像头仿真
    :描述传感器。type:传感器类型,camera。name:摄像头命名,自由设置
    :描述摄像头参数。分辨率,编码格式,图像范围,噪音参数等
    :加载摄像头仿真插件。


    查看摄像头仿真图像rqt_image_view
  • RGB-D摄像头仿真
    启动launch文件


    启动rviz,添加点云话题,添加图像话题

-激光雷达仿真
启动launch文件


添加RobotModel、LaserScan话题

你可能感兴趣的:(4 机器人仿真)