ROS+YOLOV8+SLAM智能小车导航实战(二、ROS系统安装)

一、准备

        系统:ubuntu20.04

查看系统版本命令

lsb_release -a

输出如下内容继续操作  

 

1.ROS系统安装

  1.noetic版本的ROS安装如下:

设置编码:

locale

 如图看出已经设置为utf-8无需继续设置

2.添加源

apt-cache policy | grep universe

输出如下

如果没有输出则运行以下命令

sudo apt install software-properties-common
sudo add-apt-repository universe

继续执行以下命令,作用是更新本地源

sudo apt update && sudo apt install curl gnupg2 lsb-release

继续执行

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

如果遇到报错“ailed to connect to raw.githubusercontent.com port 443 after 13 ms: 拒绝连接”

sudo vi /etc/hosts
#####################
127.0.0.1    localhost
127.0.1.1    iron-virtual-machine
###增加下面的解析
185.199.108.133  raw.githubusercontent.com

安装ROS

遇到如下问题

(base) wcw@wcw:~$ sudo apt update
命中:1 http://security.ubuntu.com/ubuntu focal-security InRelease              
命中:2 http://packages.ros.org/ros/ubuntu focal InRelease                      
命中:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal InRelease              
命中:4 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-updates InRelease
命中:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu focal-backports InRelease
获取:6 http://packages.ros.org/ros2/ubuntu focal InRelease [4,685 B]
错误:6 http://packages.ros.org/ros2/ubuntu focal InRelease
  由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
正在读取软件包列表... 完成
W: GPG 错误:http://packages.ros.org/ros2/ubuntu focal InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://packages.ros.org/ros2/ubuntu focal InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

执行以下命令

1、添加ROS软件源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

 2、添加密钥

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

3、更新软件源

sudo apt update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

4、完成以上命令开始安装ROS

sudo apt install ros-noetic-desktop-full

 出现以下输出就开始安装了

 ROS安装测试

输入以下内容测试

sudo rosdep init

 出现以下内容即表示成功

配置环境变量

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

输入以下命令,运行该脚本让环境变量生效

source ~/.bashrc
安装rosinstall

输入以下命令

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool

输出以下内容表示安装成功

 验证ROS是否安装成功
roscore

出现以下内容说明安装没有完整

 输入以下命令,把没安装的安装一下就好了

sudo apt install ros-noetic-desktop-full

经过以下内容

重新输入输出以下内容表示安装ROS安装成功

roscore

 接着快捷键ctrl+alt+T再开启一个终端输入

rosrun turtlesim turtlesim_node

会出现如下界面

然后在快捷键ctrl+alt+T再开启一个终端输入

rosrun turtlesim turtle_teleop_key

在此终端就可以上下左右简单操作你的小乌龟啦

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS SLAM小车自动导航与路径规划需要编写一些代码以实现该功能。以下是大致的代码示例: 1. 创建一个ROS工作空间并初始化源代码: ```shell mkdir -p catkin_ws/src cd catkin_ws/src catkin_init_workspace cd .. catkin_make ``` 2. 在src目录下创建一个包,并在该包下创建两个节点——一个用于SLAM,另一个用于自动导航: ```shell cd catkin_ws/src catkin_create_pkg robot_navigation rospy roscpp std_msgs nav_msgs sensor_msgs ``` 3. 在robot_navigation包中的src目录下创建slam.py文件来实现SLAM功能: ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import LaserScan from nav_msgs.msg import Odometry def scan_callback(msg): # 实现激光雷达扫描数据的处理 def odometry_callback(msg): # 实现里程计数据的处理 rospy.init_node('slam') rospy.Subscriber('/scan', LaserScan, scan_callback) rospy.Subscriber('/odom', Odometry, odometry_callback) rospy.spin() ``` 4. 在robot_navigation包中的src目录下创建navigation.py文件来实现自动导航和路径规划: ```python #!/usr/bin/env python import rospy from nav_msgs.msg import OccupancyGrid, Path from geometry_msgs.msg import PoseStamped def map_callback(msg): # 实现地图数据的处理 def path_callback(msg): # 实现路径数据的处理 rospy.init_node('navigation') rospy.Subscriber('/map', OccupancyGrid, map_callback) rospy.Subscriber('/path', Path, path_callback) rospy.spin() ``` 5. 分别在slam.py和navigation.py文件中添加必要的代码来完成SLAM和自动导航功能。 6. 在CMakeLists.txt文件中添加必要的依赖项,并使用catkin_make构建工作空间: ```cmake catkin_package( CATKIN_DEPENDS rospy roscpp std_msgs nav_msgs sensor_msgs ) ``` 7. 运行ROS节点,启动激光雷达和里程计节点,然后分别运行SLAM和自动导航节点: ```shell roscore rosrun robot_navigation slam.py rosrun robot_navigation navigation.py ``` 以上是一个简单的示例,具体的实现可能会根据具体需求和硬件设备的不同而有所变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值