roslaunch文件学习
直接上启动激光点云处理程序launch文件,当然,也可以写shell脚本,如start.sh文件,将命令行一起写入一个脚本。
<launch>
<!-- 注意这里bag文件的路径必须为绝对路径-->
<node pkg="rosbag" type="play" name="playe" output="screen" args="-l --clock /home/ryze/pcl_ws/2020-06-11-17-33-03_21.bag"/>
<!-- 启动处理滤波分割节点-->
<node pkg="pcl_init_points" type="pcl_init_points_node" name="pcl_init_points_node" output="screen"/>
<!-- 启动处理欧式聚类节点-->
<node pkg="euclidean_cluster" type="euclidean_cluster_node" name="euclidean_cluster_node" output="screen"/>
<!-- 启动处理bbox节点-->
<node pkg="b_box_deal" type="b_box_deal_node" name="b_box_deal_node" output="screen"/>
<!-- 启动处理tensorflow节点-->
<node pkg="uav_dl" name="tensorflow_detection" type="tensorflow_detection.py" output="screen" />
<!-- 启动在rviz中显示-->
<node pkg="rviz" type="rviz" name="rviz" args="../.rviz/pcl_deal.rviz" required="true" />
</launch>
pkg
对应文件的包名,type
是CMakeList.txt
中对应该文件add_executable(pcl_ws src/pcl_init_points_node)
中可执行文件的名称,在Python中则是文件名,因为Python的可执行文件就是文件本身(解释性语言,同Matlab),C++编程不要误写为文件名,写法同上。name
表示节点启动后的名称,该名称会覆盖ros::init
中初始化的名称。output
后参数表示从屏幕输出打印信息,否则打印信息会存储到某个临时文件里。
注:只需要在src下建立launch文件夹,然后在其中创建launch文件即可,不需要做其他工作。
参数里name
是ros::param::get()
中第一个字符串去掉“~”后的名称,launch会在运行时进行查找匹配,type
是变量类型,value
是具体值。以下launch文件(包含私有变量和公有变量)。
已下内容转载 http://klcf0220.cnblogs.com/
<launch>
<arg name="fcu_url" default="serial:///dev/ttyACM0:921600" />
<arg name="gcs_url" default="udp://:14556@192.168.150.2:14550" />
<arg name="tgt_system" default="1" />
<arg name="tgt_component" default="50" />
<node name="mavros" pkg="mavros" type="mavros_node" output="screen">
<param name="fcu_url" value="$(arg fcu_url)" />
<param name="gcs_url" value="$(arg gcs_url)" />
<param name="target_system_id" value="$(arg tgt_system)" />
<param name="target_component_id" value="$(arg tgt_component)" />
<rosparam command="load" file="$(find mavros)/launch/px4_blacklist.yaml" />
<!-- enable heartbeat send and reduce timeout -->
<param name="conn_heartbeat" value="5.0" />
<param name="conn_timeout" value="5.0" />
<!-- automatically start mavlink on USB -->
<param name="startup_px4_usb_quirk" value="true" />
</node>
<node name="camera" pkg="usb_cam" type="usb_cam_node">
<param name="video_device" value="/dev/video0" />
<param name="image_width" value="800" />
<param name="image_height" value="600" />
<param name="pixel_format" value="mjpeg" />
<param name="framerate" value="30" />
<param name="camera_frame_id" value="webcam" />
</node>
<node name="viewer" pkg="image_view" type="image_view">
<remap from="image" to="/camera/image_raw" />
</node>
</launch>