个人网站备案取名,基于php的电商网站开发,wordpress多域名不稳定,常州外贸网站建设公司本节主要跟着小鱼老师的视频操作#xff0c;不同的仿真平台有不同的建模语言#xff0c;但是几乎都支持URDF。
本节使用URDF创建一个机器人模型。
6.2.1 帮机器人创建一个身体
URDF使用XML来描述机器人的结构和传感器、执行器等信息。
在chapt6/chap6_ws/src创建功能包:r…本节主要跟着小鱼老师的视频操作不同的仿真平台有不同的建模语言但是几乎都支持URDF。
本节使用URDF创建一个机器人模型。
6.2.1 帮机器人创建一个身体
URDF使用XML来描述机器人的结构和传感器、执行器等信息。
在chapt6/chap6_ws/src创建功能包:ros2 pkg create fishbot_description --build-type ament_cmake --lience Apache-2.0
新功能包下创建urdf文件夹新建文件fisrt_robot.urdf. 代码如下
?xml version1.0?
robot namefirst_robot!-- 机器人身体部分 --link namebase_link!-- 部件外观描述 --visual!-- 沿自己几何中心的偏移与旋转量 --origin xyz0 0 0 rpy0 0 0 /!-- 几何形状 --geometry!-- 圆柱体半径0.1m高度 0.12m --cylinder length0.12 radius0.10 //geometry!-- 材质子标签-蓝色 --material namebluecolor rgba0.1 0.1 1.0 0.5 //material/visual/link!-- 机器人IMU部件 --link nameimu_linkvisualorigin xyz0 0 0 rpy0 0 0 /geometrybox size0.02 0.02 0.02 //geometry/visualmaterial nameblackcolor rgba0 0 0 0.5 //material/link!-- 机器人关节 --joint nameimu_joint typefixed!-- 父部件 --parent linkbase_link /!-- 子部件 --child linkimu_link /!-- 子部件相对父部件的平移和旋转 --origin xyz0 0 0.03 rpy0 0 0 //joint/robot
urdf_to_graphviz 转成pdf也不直观。
6.2.2 在RViz中显示机器人
之间终端输入rviz2,Display模块添加RobotModel,打开刚才的urdf文件,还好会提示TF错误。
安装依赖
sudo apt install ros-$ROS_DISTRO-rotbot-state-publisher
sudo apt install ros-$ROS_DISTRO-joint-state-publisher
为了方便运行使用launch启动节点。添加luanch文件夹新建display_robot.launch.py.代码如下
import launch
import launch_ros
from ament_index_python.packages import get_package_share_directorydef generate_launch_description():# 获取默认路径urdf_tutorial_path get_package_share_directory(fishbot_description)default_model_path urdf_tutorial_path /urdf/first_robot.urdfdefault_rviz_config_path urdf_tutorial_path /config/display_model.rviz# 为 Launch 声明参数action_declare_arg_mode_path launch.actions.DeclareLaunchArgument(namemodel, default_valuestr(default_model_path),descriptionURDF 的绝对路径)# 获取文件内容生成新的参数robot_description launch_ros.parameter_descriptions.ParameterValue(launch.substitutions.Command([cat , launch.substitutions.LaunchConfiguration(model)]),value_typestr)# 状态发布节点robot_state_publisher_node launch_ros.actions.Node(packagerobot_state_publisher,executablerobot_state_publisher,parameters[{robot_description: robot_description}])# 关节状态发布节点joint_state_publisher_node launch_ros.actions.Node(packagejoint_state_publisher,executablejoint_state_publisher,)# RViz 节点rviz_node launch_ros.actions.Node(packagerviz2,executablerviz2,arguments[-d, default_rviz_config_path])return launch.LaunchDescription([action_declare_arg_mode_path,joint_state_publisher_node,robot_state_publisher_node,rviz_node])视频上小鱼老师是先把default_rviz_config_path 注释掉。对于rviz参数也去掉。修改CMakeLists.txt,增加节点urdf、launch构建启动后
再次在 Rviz的Display模块做设置步骤参考视频或者书上。添加完效果如下 把配置.rviz保存下来再次修改launch启动文件,加上保存的文件参见上面代码就可达到上面的效果。
6.2.3 使用xacro 简化URDF
安装依赖sudo apt install ros-$ROS_DISTRO-xacro
新建文件fist_robot.xacro
?xml version1.0?
robot xmlns:xacrohttp://www.ros.org/wiki/xacro namefirst_robot !-- base --xacro:macro namebase_link paramslength radiuslink namebase_linkvisualorigin xyz0 0 0 rpy0 0 0 /geometrycylinder length${length} radius${radius} //geometry material namebluecolor rgba0.1 0.1 1.0 0.5 //material/visual/link/xacro:macroxacro:macro nameimu_link paramsimu_name xyzlink name${imu_name}_linkvisualorigin xyz0 0 0 rpy0 0 0 /geometrybox size0.02 0.02 0.02 //geometry/visualmaterial nameblackcolor rgba0 0 0 0.5 //material/linkjoint name${imu_name}_joint typefixed!-- 父部件 --parent linkbase_link /!-- 子部件 --child link${imu_name}_link /!-- 子部件相对父部件的平移和旋转 --origin xyz${xyz} rpy0 0 0 //joint/xacro:macro xacro:base_link length0.12 radius0.1/xacro:imu_link imu_nameimu_up xyz0 0 0.03/xacro:imu_link imu_nameimu_down xyz0 0 -0.03//robot
修改上一节6.2.2的代码把display_robot.launch.py里面。cat 替换为xacro.
构建运行bohubohu-TM1701:~/chapt6/chapt6_ws$ ros2 launch fishbot_description display_robot.launch.py model:/home/bohu/chapt6/chapt6_ws/src/fishbot_description/urdf/first_robot.xacro 6.2.4 创建机器人部件及添加物理属性
这块代码比较长就不一一贴出来对比书上6.2.46.2.5,6.3章节。
小鱼老师讲解的过程是先添加主体再加传感器、执行器轮子、6.3又加了质量与惯性。
代码结构如下 构建后运行ros2 launch fishbot_description display_robot.launch.py model:/home/bohu/chapt6/chapt6_ws/install/fishbot_description/share/fishbot_description/urdf/fishbot/fish_robot.xacro
视觉效果如下 只看质量 只看惯性