ROS学习笔记  1

内容为学长笔记,参考ros官网(待放链接)

常用工具栏:
单击Tab:自动补充代码行
Ctrl + Shift + T:打开终端
Ctrl + Z:关闭节点/进程

7.6
1.1基础功能
打开终端(梦开始的地方):$ roscore
工作空间(写代码的地方):
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash –extend
source ~/tianbot_ws/devel/setup.bash –extend
source ~/study_ws/devel/setup.bash –extend
source ~/turtlebot_ws/setup.bash –extend
source ~/manipulation_ws/setup.bash –extend

打开小海龟节点:$ rosrun turtlesim turtlesim_node

使用键盘控制小海龟:$ rosrun turtlesim turtle_teleop_key

1.2Turtlebot gazebot仿真演示
打开gazebo地图:$ roslaunch turtlebot_gazebo turtlebot_world.launch

打开相应键盘控制程序:$ roslaunch turtlebot_teleop keyboard_teleop.launch


1.3Turtlebot gazebo建图演示
打开乌龟地图:$ roslaunch turtlebot_gazebo turtlebot_world.launch

打开机器人建图程序:$ roslaunch turtlebot_gazebo gmapping_demo.launch

打开rviz可视化界面:$roslaunch turtlebot_rviz_launchers view_navigation.launch

启动键盘控制节点:$ roslaunch turtlebot_teleop keyboard_teleop.launch

保存地图:rosrun map_server map_saver -f mymap

1.4ROS导航演示
打开乌龟地图:$ roslaunch turtlebot_gazebo turtlebot_world.launch

启动乌龟机器人定位导航节点:
$ roslaunch turtlebot_gazebo amcl_demo.launch

$ roslaunch turtlebot_gazebo amcl_demo.launch map_file:=/home/tianbot/mymap.yaml

打开rviz可视化界面:
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
(使用2D Nav Goal 进行目标点的移动)


1.5 Turtlebot Stage仿真演示
参考网站:
http://wiki.ros.org/turtlebot_stage/Tutorials/indigo/Customizing%20the%20Stage%20Simulator

1.6 Turtlebot3 Gazebo仿真演示
打开终端启动仿真环境:
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch
或者
$ roslaunch turtlebot3_gazebo turtlebot3_house.launch

启动键盘控制节点:
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

1.7 Turtlebot3 Gazebo建图演示
启动仿真环境:
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

启动建图功能节点:
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
(slam的算法有很多,这里我们使用的是gmapping,如果想使用其他的slam算法,修改启动命令中的对应参数。)
启动键盘控制节点:
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

保存地图:
$ rosrun map_server map_saver -f ~/map
1.8 Turtlebot3 Gazebo导航演示
启动Gazebo仿真环境:
$ roslaunch turtlebot3_gazebo turtlebot3_world.launch

启动导航功能节点
$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=/home/tianbot/map.yaml
(这里加载的地图文件是上一章节保存的,这里一定要写绝对路径,如果你写map_file:=~/map.yaml,将不会运行成功。)

1.9 Husky Gazebo仿真演示
启动Gazebo仿真环境:
$ roslaunch husky_gazebo husky_playpen.launch
发布控制命令:
(husky接收的速度控制话题是/cmd_vel,我们在这里使用终端循环发送指令的方式进行控制,如果您感兴趣可以自己写控制节点,也可以购买手柄控制器来进行控制。)
$ rostopic pub -r 10 /cmd_vel geometry_msgs/Twist “linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 1.0″
(前三个xyz:各坐标轴的线速度;后三个xyz:角速度)



1.10 Franka Panda仿真演示
Franka Panda是一个六轴工业机械臂,ROS2GO中已经预置安装包,本示例提供一完整的仿真演示例程,给ROS机械臂开发学习提供借鉴。
启动rviz可视化操作环境:
$ roslaunch panda_moveit_config demo.launch rviz_tutorial:=true

根据以下步骤配置rviz环境
点击’add’添加’MotionPlanning’可视化选项;
2.修改’Global Options’可视化选项中’Fixed Frame’值为’panda_link0′;
3.修改’MotionPlanning’可视化选项中’Robot Description’值为’robot_description’;
4.修改’MotionPlanning’可视化选项中’Planning Scene Topic’值为’/planning_scene’;
5.修改’MotionPlanning’可视化选项中’Planning Request’中的’Planning Group’值为’panda_arm’;
6.修改’MotionPlanning’可视化选项中’Planned Path’中的’Trajectory Topic’ 为’/move_group’;
第一步执行完后,并不会自动加载’MotionPlanning’插件,需要我们点击’add’添加,并且修改相关配置。用鼠标拖拽rviz机械臂末端来指定规划位置,点击‘Plan’按钮规划,点击’Plan and Execute‘规划后即刻执行。


(六自由度机械臂官网)
http://docs.ros.org/en/kinetic/api/moveit_tutorials/html/doc/quickstart_in_rviz/quickstart_in_rviz_tutorial.html

树莓派4b ros学习

环境安装

  • ubuntu20.04server官方版本
  • 安装Ubuntu-mate-desktop和vnc
    sudo apt install ubuntun-mate-core ubuntu-mate-desktop
    sudo apt install x11vnc
    x11vnc -storepasswd
    x11vnc -usepw
  • 安装ros
    ubuntu20.04安装ros
  • rosdep安装方法1
  • rosdep安装方法2参考方法1视频,把网址全部换为镜像

创立工作空间

mkdir -p ~/__name__/src
cd ~/__name__/src
catkin_init__workspace
cd ..
catkin_make
source devel/setup.bash
ench $ROS_PACKAGE_PATH #check path

创建、编译功能包

创建工作包

cd ~/__name__/src
catkin_create_pkg [depend1] [depend2] [depand3]

depends
  • roscpp#c++
  • rospy#python
  • std_msgs
  • turtlesim
  • geometry_msgs
编译功能包

cd ..
catkin_make
source ~/__name__/devel/setup.bash

测试发布者代码c++

测试发布者代码python

测试订阅者代码c++

测试订阅者代码python

配置Cmakelist.txt

将以下代码放置于Cmakelist.txt build中
add_executable(__name__ src/__name__.cpp)
target_link_libraries(__name__ ${catkin_LIBRARIES})

编译并运行

cd ~/__name__
catkin_make
source devel/setup.bash
roscore
rosrun xxx xxx

自定义话题消息

  • 定义msg文件
  • 在package.xml添加功能包依赖
  • 在Cmakelist.txt添加编译选项
  • 编译生成语言相关文件