一、了解ubuntu的使用
- mkdir
创建文件夹mkdir
mkdir -p spot_ws/src
//若需要创建父子两层文件夹需要加上参数-p
- cd
进入文件夹cd
cd spot_ws/src
- pwd
查看当前所在路径pwd
- touch
创建文件touch
touch main.cpp
- ls
列出当前文件夹下的所有文件或文件夹ls
- mv
将一个文件移动到另一位置mv
sudo mv main.cpp /home/huangqifan/
//sudo管理员权限,把当前文件夹下的mian.cpp移动到 /home/huangqifan/目录下
- cp
将一个文件复制到另一位置cp
sudo cp /home/huangqifan/main.cpp ./
./ 表当前所在文件夹,将main.cpp复制到当前文件夹下
- 更新源
sudo apt update
//连接手机热点成功率高
- 快捷键
Ctrl+alt+T
新开启一个独立终端
Ctrl+shift+T
在当前终端基础上开启一个终端
Ctrl+shift+c
复制
Ctrl+c
中止当前执行的操作
1.2 ubuntu下创建并执行c++、python文件
1.2.1 c++程序
1.安装编译c++的环境
sudo apt-get install gcc g++
2.编写c++文件
touch hello.cpp
sudo gedit hello.cpp
//gedit为文档编辑器
书写程序如下
#include<iostream>
using namespace std;
int main(){
cout<<"hello world"<<endl;
return 0;
}
3.生成可执行程序
g++ -o hello hello.cpp
//-o后加生成的可执行文件名hello
4.执行hello.cpp
./hello
//进入到文件所在路径,运行可执行文件
1.2.2 python文件
1.创建文件
touch 01-hipython.py
sudo gedit 01-hipython.py
//编辑文件
2.书写程序
# -*- coding: utf-8 -*- #加这个之后就可以添加汉语注释
i=0
for i in range (0,5):
print("hello world %d" %i)
3.执行程序
python 01-hipython.py
ros命令
2.1 打开ros小乌龟
roscore //分别在3个终端执行
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
2.2 ros命令
1.rosparam命令
rosparam双击Tab即可列出rosparam的可选功能
rosparam list
//列出当前存在的所有参数
rosparam get /参数名
//获取某参数的参数值
rosparam set /参数名
//设置某参数的参数值
rosparam delete /参数名
//删除参数
rosparam dump params.yaml
//将所有param存储到当前文件夹下的params.yaml 里面
rosparam load params.yaml
//恢复导出的数据
2.rosnode命令
rosnode list
列出当前打开的节点
rosnode info /节点名
列出所选节点信息
3.rostopic命令
rostopic list 话题名
//列出当前存在话题
rostopic info 话题名
//查看指定话题的信息
rostopic find 消息类型
//查找使用指定消息类型的话题
rostopic echo 话题名
//实时显示指定话题的消息内容
rostopic bw /话题名
//显示指定话题的消息数据带宽(bandwidth)(传输速度)
rostopic type 话题名
//显示指定话题的消息类型
rostopic hz 话题名
//显示指定话题的消息数据发布周期
由图平均发布周期62Hz
rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’
//-1只发布一次消息(-r循环发布) 在x轴坐标上以每秒2.0 m的速度移动,以z轴为中心,每秒旋转1.8rad
- rosservice命令
rosservice list 服务名
//列出当前活跃的服务
rosservice call 服务名
//调用服务
rosservice call /clear
//清除小乌龟背景中的轨迹
rosservice type 服务名
//查看服务的类型(已知服务查类型)
上图等效于rosservice type /spawn | rossrv show
&&
表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo ‘2’
|
表示管道,上一条命令的输出,作为下一条命令参数,如 echo ‘yes’ | wc -l
||
表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo “fail”
rossrv show 服务类型
//查看某类型服务请求回应的数据(类型)
rosservice和rossrv区别:前者是对ROS服务本身的管理,后者是对ROS 服务类型的管理,相当于话题的rostopic和rosmsg。
rosservice call /spawn 2 2 0.2 ""
//对应上面请求的四个参数,其中name为空
在x=2,y=2,角度为0.2处生成乌龟
rosservice find 服务类型
//查找使用指定服务类型的服务 已知类型查服务
- rosbag命令
rosbag record -a
//录制所有话题,录制的 bag 包以时间命名
rosbag record -O bag_name.bag /topic1_name /topic2_name /xxx
//-O加包名
rosbag play record.bag
//回放
rosbag play --pause record.bag
//以暂停的方式启动回放暂停播放,等待按空格开启播放
rosbag play -r 0.5 record.bag
以 0.5 倍速回放也就是以录制频率的一半回放
record:用指定的话题录制一个 bag 包
info:显示一个 bag 包的基本信息,比如包含哪些话题
play:回放一个或者多个 bag 包
check:检查一个 bag 包在当前的系统中是否可以回放和迁移
compress:压缩一个或多个 bag 包
decompress:解压缩一个或多个 bag 包
reindex:重新索引一个或多个损坏 bag 包