树莓派小车搭建

本指南详细介绍了如何在树莓派上配置并运行ROS系统,包括Ubuntu Mate系统安装、ROS环境搭建、SSH远程登录配置、SPI启用、ROS主从机设置及节点远程启动等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

树莓派小车配置指南

1. 安装ubuntu-mate系统

1.1 下载ubuntu-mate镜像:

https://ubuntu-mate.org/raspberry-pi/

1.2下载Win32DiskImager:

https://sourceforge.net/projects/win32diskimager/

1.3 准备一张大于8GB的TF卡,将其格式化

1.4 烧录系统:

将下载的系统文件解压得到.img文件,需将该文件放在英文目录下,点Write按钮进行烧录
在这里插入图片描述
然后点击write开始压缩镜像到sd卡中。

2. 安装ros

2.1 Setup your sources.list

  • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2.2 Set up your keys

  • sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

2.3 Installation

  • sudo apt-get update
  • sudo apt-get install ros-kinetic-desktop-full

2.4 Initialize rosdep

  • sudo rosdep init

2.5 Environment setup

  • echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
  • source ~/.bashrc
  • source /opt/ros/kinetic/setup.bash
  • echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
  • source ~/.zshrc

2.6 Dependencies for building packages

  • sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

3. 安装ssh远程登录服务

3.1 安装ssh

  • sudo apt-get install openssh-server

3.2 查看SSH服务是否启动

  • sudo ps -e |grep ssh

如果没有启动,输入命令

  • sudo service ssh restart
    备用指令:
  • sudo ufw disable
  • ssh localhost

4. 使用root权限登录

第一次su root会拒绝,所以首先输入以下命令:

  • sudo passwd root
  • su root
    即可完成

5. 开机自启动ssh

  • su root
  • gedit /etc/rc.local
  • 增加/etc/init.d/ssh start
  • 保存即可

如果提示 error: ssh:connect to host 192.168.31.97 port22: Connection refuzed

错误原因:ssh没安装,开机没自启动

如果出现@@@@@@@ WARNING:REMOTE…CHANGED

  • gedit ~/.ssh/know_hosts
  • 将里面的内容全部删除
  • `保存即
    如果出现无法获得锁定,,, 无法,,,
  • sudo rm/var/cache/apt/archives/lock
  • sudo rm/var/lib/dpkg/lock

6. 树莓派开启SPI

  • sudo raspi-config
  • 选择 Advanced Options -> SPI -> yes 启动SPI内核驱动
  • lsmod
  • cd /dev
  • ls
  • gpio readall

7. sudo 找到不到命令

  • sudo gedit /etc/sudoers
  • 找到Defaults env_reset, 将其改为 Defaults !env_reset
  • gedit ~/.bashrc
  • 在文件中添加 alias sudo='sudo env PATH=$PATH'

8.配置主从机

8.1 在PC上

  • gedit ~/.bashrc
  • export ROS_HOSTNAME=PC_IP地址
  • export ROS_MASTER_URI=http://PC_IP:11311 #这就是roscore运行的地方,因为要配置多个机器人,所以roscore在PC上运行。

8.2 在机器人上

  • gedit ~/.bashrc
  • export ROS_HOSTNAME=robot_IP地址

eg: ssh burger@192.168.31.97

9. roslaunch远程启动节点教程

9.1 主机配置

  • sudo gedit /etc/hosts
//写入一下内容
   192.168.50.242   zzc    //主机地址+主机名字
   192.168.50.177   car1   //从机地址+从机名字
  • gedit ~/.bashrc
// 加入以下内容

	export ROS_IP=zzc
	export ROS_HOSTNAME=zzc
	export ROS_MASTER_URI=http://zzc:11311
	export ROSLAUNCH_SSH_UNKNOWN=1
  • 编写launch文件
<launch>

   <machine name="car1" address="192.168.50.177" user="burger" password="123456" env-loader="opt/ros/kinetic/car1_env.sh"/>
   <node machine="car1" pkg="beginner_tutorials" name="car1" type="wang.py" output="screen"/>

</launch>

9.2 从机配置

  • sudo gedit /etc/hosts
//写入一下内容
   192.168.50.242   zzc    //主机地址+主机名字
   192.168.50.177   car1   //从机地址+从机名字
  • sudo gedit /opt/ros/kinetic/car1_env.sh //创建环境变量文件
// 写入以下内容
	#!/bin/sh
		export ROS_IP=car1
		export ROS_HOSTNAME=car1
		export ROS_MASTER_URI=http://zzc:11311
		export ROSLAUNCH_SSH_UNKNOWN=1
		. /home/burger/catkin_car1/devel/setup.sh
	exec "$@"
  • 给创建的环境变量文件增加权限
  cd /opt/ros/kinetic/
  sudo chmod a+x car1_env.sh
  • 将catkin_car1 中的脚本 wang.py其中这部分注释掉
# 获取标准输入的描述符
	#fd = sys.stdin.fileno()

	# 获取标准输入(终端)的设置
	#old_ttyinfo = termios.tcgetattr(fd)

	# 配置终端
	#new_ttyinfo = old_ttyinfo[:]

	# 使用非规范模式(索引3是c_lflag 也就是本地模式)
	#new_ttyinfo[3] &= ~termios.ICANON

	# 关闭回显(输入不会被显示)
	#new_ttyinfo[3] &= ~termios.ECHO

	# 使设置生效
	#termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo)

10. 错误情况

  • (1)不能与主机通信: 说明没配置好主从机
  • (2)不可以运行代码: 说明wifi没连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值