儿童摄影网站怎么做,wordpress 政企,设计官网费用,腾讯云网站建设的步骤过程b站上有一个非常好的ros教程234仿真之URDF_link标签简介-机器人系统仿真_哔哩哔哩_bilibili#xff0c;推荐去看原视频。
视频教程的相关文档见#xff1a;6.7.1 机器人运动控制以及里程计信息显示 Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
本文对视频教程…b站上有一个非常好的ros教程234仿真之URDF_link标签简介-机器人系统仿真_哔哩哔哩_bilibili推荐去看原视频。
视频教程的相关文档见6.7.1 机器人运动控制以及里程计信息显示 · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
本文对视频教程第六章的主要内容做一个总结视频教程没有集成的代码都是每一课分散的代码本文把主要代码集合进来给嫌视频太长不想看的同学做一个总结。教程视频中使用的是rplidar那个很不好用也不接近现实。本文改用Velodyne的lidar相对更好用一些。Velodyne源代码在github。
本文主要包括以下内容
gazebo仿真世界的构建mobile robot的构建RGB相机和雷达这两个传感器的构建如何获取传感器的数据并在rviz中显示以及robot的控制器。
下载资源可以得到如下的
文件结构
工作空间文件夹ros_robot_navi工作空间文件夹下 src中包含两个功能包 velodyne_descreption是github上下载的lidar仿真模块。
进入 robot_sim中有如下结构 urdf中放的是robot lidar camera等模型文件worlds中放的是gazebo模拟世界的环境launch中就是launch文件了。
robot建模
在urdf/gazebo/中放的是各类模型。 以my_base.xacro文件为例这个是robot的底座 link namebase_footprintvisualgeometrysphere radius${base_footprint_radius} //geometry/visual/link
link标签就是机器人的各个部件各个部件之间通过joint标签相连接 joint namebase_link2base_footprint typefixedparent linkbase_footprint /child linkbase_link /origin xyz0 0 ${earth_space base_link_length / 2 } //joint
collision和initial属性是gazebo仿真必须的属性。进行刚体力学 运动学计算和碰撞计算。
my_car.xacro将各个部分拼装在一起。move是小车运动控制器。
!-- 组合小车底盘与摄像头 --
robot namemy_car xmlns:xacrohttp://wiki.ros.org/xacroxacro:include filenamemy_head.xacro /xacro:include filenamemy_base.xacro /xacro:include filenamemy_camera.xacro /xacro:include filenamemy_laser.xacro /xacro:include filenamemove.xacro /xacro:include filename$(find velodyne_description)/urdf/VLP-16.urdf.xacro/xacro:VLP-16 parentsupport namevelodyne topic/velodyne_points hz10 samples440 gpufalseorigin xyz0 0 0.4 rpy0 0 0 //xacro:VLP-16
/robot在集成lidar时parent是提前建好的joint中的父节点。通过parent这个参数就可以建立lidar模块和小车底座模块的联系。
launch
在robot_sim功能包的launch文件夹中car_env_gazebo.launch
launch!--launch urdf content to param server--param namerobot_description command$(find xacro)/xacro $(find robot_sim)/urdf/gazebo/my_car.xacro /!-- launch gazebo --include file$(find gazebo_ros)/launch/empty_world.launcharg nameworld_name value$(find robot_sim)/worlds/box_house.world //include!-- display robot in gazebo--node pkggazebo_ros typespawn_model namemodel args-urdf -model mycar -param robot_description /
/launch
command命令是为了将.xacro转为.urdf。也可以通过以下命令单独进行转化
进入要转化的.xacro文件夹
rosrun xacro xacro xxx.xacro xxx.urdf
把转化集成进.launch中的好处是改了模型以后不用单独转化直接运行。坏处是如果模型有问题不知道哪里报错。如果在gazebo中没有正确显示出模型那么再单独运行这个转化命令看看是模型哪里写错了。
运行这个.launch文件
roslaunch robot_sim car_env_gazebo.launch
就可以在gazebo中看到小车和雷达了 再运行 my_car_rviz.launch
launchparam namerobot_description command$(find xacro)/xacro $(find robot_sim)/urdf/gazebo/my_car.xacro /node pkgrviz typerviz namerviz /node pkgjoint_state_publisher typejoint_state_publisher namejoint_state_publisher outputscreen /node pkgrobot_state_publisher typerobot_state_publisher namerobot_state_publisher outputscreen /node pkgjoint_state_publisher_gui typejoint_state_publisher_gui namejoint_state_publisher_gui outputscreen //launch就可以在rviz中看到lidar的点云和相机的图片了 小车也可以加进来 运动控制
再打开一个终端source一下运行
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}}控制小车运动。
launch文件说明
launch!-- 启动节点 --node pkgyour_package_name typeyour_node_executable nameyour_node_name /
/launch