今天又踩了URDF的深坑,记录一下启动URDF文件的launch文件编写
踩坑特别提醒,记得先编译整个文件夹,再设置环境变量,再启动launch
还有设置环境变量时要记得使用永久环境变量设置
echo "source/WORKSPACE/devel/setup.bash"
还有永久设置的方法,这里从ROS wiki 里扒
每当一个新的界面(shell)启动时,自动设置ROS workspace很方便: echo "export ROS_PACKAGE_PATH=~/ros_workspace:$ROS_PACKAGE_PATH" >> ~/.bashrc echo "export ROS_WORKSPACE=~/ros_workspace" >> ~/.bashrc . ~/.bashrc 为了确认你的package路径设置正确,回显 ROS_PACKAGE_PATH 变量: echo $ROS_PACKAGE_PATH 你应该能看到类似的结果: /home/user/ros_workspace:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks |
launch文件开头
<launch>
....
</launch>
启动node节点的程序段
<node pkg="PACKAGE_NAME" name="other_name_you_want_to_call_the_node" type="node_name" output="screen" respawn="true" required="true" ns="namespace" args="arguments"/>
此尖括号命令用于多次启动同一节点,并赋予不同的变量名,output为输出地址,respawn为节点停止自动重启,required即设置为必要节点,ns为命名空间,args为节点所需参数
启动文件中还有多个标签,如参数设置的arg标签,param标签,remap标签
参数设置标签<param>和<arg>
<param>标签用于设定ROS系统的部分参数,节点可以通过ros::param::get来获取这个值
使用方法如
<param name="PARAMETER_NAME" value="parameter value"/>
服务器就会上传相应数据到服务器
在ROS中也可以利用YAML文件进行参数配置,利用ROSPARAM标签
<rosparam file="$YAML_DIR/config.yaml" command="load" ns="namespace you want to use"/>
arg是launch文件内利用的参数,可以减少重复录入同一变量值
<arg name="agn" default="aaaaaaa"/>
launch文件内可以调用ARG
<node name="$(arg an)" type="$(arg an)"/>
接口名称重映射
使用接口重映射可以改变topic名称,如
<remap from="" to=""/>
嵌套复用
嵌套复用可以像include一样将其他文件的内容复制进来,用法如
<include file="DIR_/name.launch"/>