开启你的机器人开发之旅
pwd # 【我在哪?】显示当前位置 ls # 【这有什么?】列出文件 ls -la # 【火眼金睛】显示包括隐藏文件 cd Desktop # 【瞬移】去桌面文件夹 cd .. # 【退一步】返回上一层 cd ~ # 【回家】回主目录
mkdir project # 【盖房子】创建新文件夹 touch hello.txt # 【点点点】创建空文件 cp file1 file2 # 【分身术】复制文件 mv file1 file2 # 【搬家】移动或改名 rm test.txt # 【橡皮擦】删除文件 rm -rf folder # 【终极毁灭】删除文件夹(极其危险!!)
警告:在 Linux 里没有“回收站”,rm -rf 用错可能会毁掉整个系统!
rm -rf
cat hint.txt # 【一览无余】显示全部内容 head list.txt # 【看个头】显示前10行 tail log.txt # 【看个尾】显示最后10行 tail -f log.txt # 【监控器】实时刷新,看日志变动 less file.txt # 【翻书模式】上下翻页看大文件
nano file.txt # 【极速上手】最简单的编辑器 vim file.txt # 【大师之路】高手专用(需要学习按键) gedit file.txt # 【像记事本】打开图形窗口编辑
find /home -name "*.txt" # 【寻宝】按名字找文件 grep "秘密" hint.txt # 【关键词锁死】找文中的话 grep -r "error" ./ # 【地毯式搜寻】递归查找目录
uname -a # 【自我介绍】查看系统版本 df -h # 【硬盘空间】看看硬盘满没满 free -h # 【体力值】看看内存够不够 top # 【热榜】实时看哪个进程最忙 htop # 【高级版热榜】更漂亮的界面
ps aux # 【列队清单】看所有在运行的程序 ps aux | grep ros # 【精准打击】找出 ROS 相关程序 kill 1234 # 【强制下课】杀死 PID 为 1234 的程序 killall roscore # 【一网打尽】结束所有同名程序
chmod +x script.sh # 【赋予能量】让程序变“可执行” chmod 755 file # 【调整权杖】设置具体权限 sudo command # 【变身管理员】以 Super User 身份干活
ip addr # 【查门牌号】看电脑的 IP 地址 ping 192.168.1.1 # 【喂?还在吗?】测网络连通性 ssh pi@192.168.1.10 # 【灵魂附身】远程登录其他机器人
roscore # 【启动大脑】所有节点通信都需要它 rosrun pkg_name node # 【请出一位演员】运行指定的节点 roslaunch pkg name.launch # 【剧组统筹】一次性启动一堆节点
我们需要打开 3 个终端窗口,观察它们之间的秘密:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
任务:点击“遥控器”终端,用方向键指挥海龟画一个五角星(或者乱动一下也行)!
在 ROS 的世界里,每个程序都叫一个“节点 (Node)”。
查看有哪些演员在场:
rosnode list
你应该能看到 /turtlesim 和 /teleop_turtle
/turtlesim
/teleop_turtle
打探某位演员的底细:
rosnode info /turtlesim
这里能看到它都在谈论什么话题 (Topics)
想知道这些节点是怎么互相说话的吗?
开一个新终端输入:
rqt_graph
小贴士:你会看到一条线从 teleop 连向 turtlesim。就像电线一样,遥控器的指令通过话题发给了海龟!
teleop
turtlesim
海龟的一举一动都会在“话题 (Topic)”通道里广播。
rostopic list
rostopic echo /turtle1/cmd_vel
如果不按键盘,我们能不能直接用命令让它动起来?当然可以!
在终端输入这段“咒语”(建议按 Tab 键自动补全):
rostopic pub -r 1 /turtle1/cmd_vel geometry_msgs/Twist "linear: x: 2.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 1.8"
效果:-r 1 让它每秒发 1 次指令。海龟会开始疯狂转圈圈!按 Ctrl+C 停止“魔法”。
-r 1
Ctrl+C
我们可以通过“参数 (Parameter)”动态改变它的环境。
rosparam list
rosparam set /turtlesim/background_b 50 rosparam set /turtlesim/background_g 0 rosparam set /turtlesim/background_r 150
rosservice call /clear
如果你想再变出一只海龟,或者把现有的送回家?
rosservice call /turtle1/teleport_absolute 5.0 5.0 0.0
rosservice call /spawn 3.0 3.0 0.0 "new_turtle"
在 ROS 里,所有的代码都要放在指定的工作空间 (Workspace) 里。
mkdir -p ~/catkin_ws/src # 1. 盖好房子 cd ~/catkin_ws/src catkin_init_workspace # 2. 挂上牌匾 cd ~/catkin_ws catkin_make # 3. 装修编译 source devel/setup.bash # 4. 让电脑认识它
每次打开新终端都要 source 太麻烦了?你可以把命令写进电脑的“备忘录”:
source
# 执行一次即可,以后开机自动生效 echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
rviz # 启动可视化界面
在 RViz 里,你可以看到激光雷达、地图、甚至是虚拟的机器人身体
想把机器人的表现录下来回家研究?
rosbag record -a
Ctrl + C
rosbag play your_file_name.bag
echo $ROS_PACKAGE_PATH
catkin_make clean
hello_ros
你已经掌握了 Linux 与 ROS 的入门密码。
机器人开发是一个充满惊喜的过程: