操作命令行——功能
SourceURL:file:///home/rogen/文档/WPS Cloud Files/595771602/桌面/文字文稿1.docx
pwd 搜索当前路径
cd (目标路径) 前往该文件夹路径
cd .. 返回之前路径
ls 查询当前文件夹内容
mkdir(自定义文件名) 创建文件夹
touch (自定义文档名) 创建文档
mv (文档) (目标路径) 剪切该文档至目标路径
cp (文档)(目标路径)/(新文档名) 拷贝当前文档至新路径内
rm (文档) 删除文档
rm -r (文件名) 删除文件夹 -r是指用递归方式删除文件夹里的文件
rm --help
sudo 用于提高用户权限
unzip -O CP936 (压缩包名) 解压得用这个,不然会乱码
g++ (c++_for.cpp程序文件名) -o (c++_for) 编译c++文件
./(c++_for编译后文件) 运行c++文件
python (python_for.py 文件名) 解析python文件
rospack 管理、查询和检查ROS软件包(packages)的信息
rosrun 用包名运行软件包内的节点
rqt_graph 查看系统中运行的计算图
rqt_plot 在滚动时间图上显示发布到某个话题上的数据
各种命令行细节
rosnode
rosnode ping test connectivity to node
rosnode list list active nodes
rosnode info /(节点名称) print information about node
rosnode machine list nodes running on a particular machine or list machines
rosnode kill kill a running node
rosnode cleanup purge registration information of unreachable nodes
rostopic
rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic echo print messages to screen显示在某个话题上发布的数据
rostopic find find topics by type
rostopic hz display publishing rate of topic 报告数据发布的速率
rostopic info print information about active topic
rostopic list list active topics
rostopic pub /话题名 发布指令的内容 publish data to topic 把数据发布到当前某 个正在广播的话题上
rostopic type print topic or field type
rosmsg
rosmsg show Show message description
rosmsg info Alias for rosmsg show
rosmsg list List all messages
rosmsg md5 Display message md5sum
rosmsg package List messages in a package
rosmsg packages List packages that contain messages
rosservice
rosservice args print service arguments
rosservice call call the service with the provided args用给定的参数调用服务
rosservice find find services by service type按服务的类型查找服务
rosservice info print information about service
rosservice list list active services 输出活跃服务的信息
rosservice type print service type输出服务的类型
rosservice uri print service ROSRPC uri输出服务的ROSRPC uri
rosbag
rosbag record -a -o cmd_record 话题记录,保存数据
rosbag play (cmd_record.bag看保存时文件名) 话题复现
rosbag info ( ) 查看其中内容
roscp
roscp [package_name] [file_to_copy_path] [copy_path] 将文件从一个包复制到另一个包。
rosed
rosed [package_name] [filename] 直接通过软件包名编辑包中的文件,而无需键入完整路径
roswtf
roswtf 检查系统并尝试发现问题
rosdep
rosdep 能够下载并安装ROS packages所需要的系统依赖项的小工具
rosparam
rosparam set set parameter 设置参数值
rosparam get get parameter 显示参数值
rosparam load load parameters from file 从文件读取参数
rosparam dump dump parameters to file 保存参数到文件
rosparam delete delete parameter
rosparam list list parameter names
创建工作空间
mkdir (catkin_ws文件夹名) [mkdir -p demo1_ws/src]可这样
cd catkin_ws/
mkdir src
(cd src/
catkin_init_workspace)
编译工作空间(编译后发现没有install文件,通过catkin_make install增加)
cd catkin_ws/
catkin_make
(catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3)
(code . 跳转vscode ctrl+shift+b (catkin_make:build
)编译 ctrl+s保存)
创建功能包(一定要放进src中)
catkin_create_pkg (功能包名) (依赖1) (依赖2)
设置环境变量(才能让系统找到工作空间)
source devel/setup.bash
(这步可以用下面操作代替掉:在文档主目录中按ctrl+h找到.bashrc文件,打开后在最后加上source ~/工作空间/devel/setup.bash保存后退出,打开终端输入 source .bashrc即可 )
检查环境变量(查找工作空间的路径)
echo $ROS_PACKAGE_PATH
launch文件
<launch>
<node pkg="package-name" type="executable-name" name="node-name" output =”screen” />
</launch>
(pkg:节点所在的功能包名称 type:节点的可执行文件名称 name:节点运行时的名称 output:将某一信息打印至终端\respawn:某一节点挂掉后重启\required:某一节点是否一定要启动\ns:命名空间\args:给每个节点输入一些参数)
参数设定:
1、<param>/<rosparam>:
设置ros系统运行中的参数,存储在参数服务器中:
<param name="output_frame"value="odom"/> //(name参数名 value参数值)
加载参数文件中的多个参数:
<rosparam file="params.yaml"comand="load"ns="params"/>
2、<arg>:
launch文件内部的局部变量,仅限于launch文件使用:
<launch>
<arg name="updata_value" default="1"/>
<param name="calculation_method" type="int" value="$(arg updata_value)" />
<node pkg="ros_tutorials_service" type="service_server" name="service_server" output="screen"/>
</launch>
3、重印射<remap>
重印射ros计算图资源的命名
<remap from ="/turtlebot/cmd_vel"to="/cmd_vel"/>
(turtlebot原来的名字 from原命名 to 印射后的命名)
4、<rosparam>
加载.yaml
的配置文件
在功能包下面建一个config
文件夹,放入参数配置文件service.yaml
,
launch
文件内容变为:
<launch>
<node pkg="ros_tutorials_service" type="service_server" name="service_server" output="screen"/>
<rosparam command="load" file="$(find ros_tutorials_service)/config/service.yaml"/>
</launch>
参数服务器获取参数
演示参数查询:
在 roscpp 中提供了两套 API 实现参数操作
ros::NodeHandle
param(键,默认值)
存在,返回对应结果,否则返回默认值
getParam(键,存储结果的变量)
存在,返回 true,且将值赋值给参数2
若果键不存在,那么返回值为 false,且不为参数2赋值
getParamCached键,存储结果的变量)--提高变量获取效率
存在,返回 true,且将值赋值给参数2
若果键不存在,那么返回值为 false,且不为参数2赋值
getParamNames(std::vector<std::string>)
获取所有的键,并存储在参数 vector 中
hasParam(键)
是否包含某个键,存在返回 true,否则返回 false
searchParam(参数1,参数2)
搜索键,参数1是被搜索的键,参数2存储搜索结果的变量
ros::param ----- 与 NodeHandle 类似