纯小白入坑jetson nano和ubuntu系统,时长找不到想用的命令,写个笔记记录在这儿了!记得可能不那么易于阅读,同时可配合B站良心教程一同学习!
git clone + 网址时,有时候github的博主的库是引用的,需要修改为:
git clone --recursive +网址,则可以把引用的库发出来;
有时github较慢,在地址前增加gitclone.com,速度就变快了
开文件夹权限 sudo chmod 777 -R 文件夹名/ls = list 查看当前目录
chmod = change mode
mkdir = make directory 创建目录
pwd = print working directory,用于显示当前工作目录的绝对路径
history 显示历史操作
dpkg -i+包名.deb 安装软件
sudo apt update更新软件包库到最新
echo 我走了
echo 我又来了
echo是显示的意思
source command.sh - 会加载.sh文件里的代码
.bashrc 终端程序启动脚本
echo 哥哥我闪亮登场~
source ~/command.sh - 每次打开终端时会运行.bashrc中的命令
sudo = 以管理员权限执行本条指令
查看tf tree
rosrun rqt_tf_tree rqt_tf_tree //在ROS里面查看tf变换关系
roswtf //roswtf可以检查tf的配置并发现常见问题
rosrun rivz rivz //同时可以配合rviz直观查看各个坐标系之间的关系
rosrun tf tf_echo /world /turtle1 //查看turtle1在world在world中的坐标
https://blog.csdn.net/qq_39779233/article/details/108215144
6. ROS应用商店APT源
index.ros.org -ros商店
sudo apt install ros-melodic-rqt-robot-steering -安装ros软件包
roscore -运行ros核心
rosrun rqt-robot-steering rqt-robot-steering
sudo apt install ros-melodic-turtlesim -安装仿真小乌龟
rosrun turtlesim turtlesim_node -运行仿真小乌龟
界面中输入turtle1
7. 开源自由市场Github
github上的都是源代码,要先建立工作空间编译源代码
mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
sudo apt install git
github上搜索 wpr_simulation,复制其下载链接
在src目录下输入 git clone https://github.com/6-robot/wpr_simulation.git(这个是noetic的网址)
scripts目录用于防止脚本文件和Python程序,完成一些使用频率不高的操作
在scripts目录下输入 ./install_for_melodic.sh -会安装程序所需的依赖包
回到工作空间入口 cd ~/catkin_ws/ 在这个目录下catkin_make
然后 source ~/catkin_ws/devel/setup.bash -source指令载入工作空间的环境变量
然后 roslaunch wpr_simulation wpb_simple.launch -roslaunch运行编译好的ROS程序
rosrun rqt_robot_steering rqt_robot_steering -打开之前的demo,可以用之前的代码控制仿真转向
- 将source指令添加到.bashrc脚本中,不用每次都重复操作
gedit ~/.bashrc 在文件末尾新增一行 source ~/catkin_ws/devel/setup.bash 保存关闭
ROS软件包源代码
cd catkin_ws/src/
git clone https://github.com/ros/ros_tutorials.git
cd ~/catkin_ws/
catkin_make
roscore
rosrun turtlesim turtlesim_node
(一系列迷惑操作,结论是可以修改C++代码)
11. 初学ROS
节点需要依托于包存在
cd catkin_ws/src
catkin_create_pkg ssr_pkg rospy roscpp std_msgs -catkin_create_pkg <包名><依赖项列表>
依赖项:rospy roscpp std_msgs,前两个是ROS与python和C++,后面是通用消息提示
依赖项本来是节点,但是因为调用得过于频繁,因此被单独拿出来当做依赖项
查看新建的CMakeLists.txt文件,双#是对文件中指令内容的说明 单 #是与注释对应的指令示例
roscd roscpp -直接跳转到依赖项的目录
code package.xml -用VScode打开xml文件,其结构与之前建立的package一致,这就是一个开源软件包
/opt/ros/<ROS版本>/share 这个目录下都是软件包,其来源:
sudo apt-get install ros-<ROS版本>-desktop-full 基础包
sudo apt-get install ros-<ROS版本>-xxx 独立扩展包
这些通过APT下载的包都是现成的可执行文件,catkin工作空间里的包都是源码文件,需要编译成可执行程序才能运行
Vscode如果无法运行,可直接在catkin_ws目录下catkin_cmake进行编译,同样可以编译成功
打开ros核心 roscore
运行ROS节点:rosrun<包名><节点文件名>
rosrun ssr_pkg chao_node
如果找不到的话:source ~/catkin_ws/devel/setup.bash
如果之前有把这句写入.bashrc文件就不会有这个问题
总结
12. ROS的沟通方式:TOPIC与Message
1) 话题Topic是节点间进行持续通讯的一种形式;
2) 话题通讯的两个节点通过话题的名称建立起话题通讯连接;
3) 话题中通讯的数据,叫做消息Message
4) 消息Message通常会按照一定的频率持续不断地发送,以保证消息数据的实时性
5) 消息的发送方叫做话题的发布者Publisher
6) 消息的接收方叫做话题的订阅者Subscriber
IMU传感器:实时发布机器人的旋转倾斜这些姿态信息的单元模块
Actuator:n. 执行器(电机,机械臂等等这些)
多发布者状况:
外延补充
- 一个ROS节点网络中,可以同时存在多个话题;
- 一个话题可以有多个发布者,也可以有多个订阅者;
- 一个节点可以对多个话题进行订阅,也可以发布多个话题;
- 不同的传感器消息通常会拥有各自独立话题名称,每个话题只有一个发布者。
- 机器人速度指令话题通常会有多个发布者,但是同一时间只能有一个发言人。
可通过ROS index网站查看melodic的std_msgs的消息类型