Icar是一款用于ROS学习的低成本高性能双轮差速小车,Icar的设计到做出实物,遵循着性价比的原则,使用最低成本的硬件做出最好的效果,因此,电机选用了两个42步进电机 ,实现高精度的电机运动以及里程计反馈,机身材料全部采用3D打印PLA材质,螺栓均采用塑料尼龙六角柱,底层直接使用Arduino RosSerial与树莓派通信,相比串口发送,更简洁、代码量更少。主控使用树莓派3B/3B+/4 ,运行基于 Raspbian 的 Ros Kinetic ,雷达可搭载思岚的rpdiar a1,或者Robotics的LDS。当前支持手柄 PS3/XBOX360/LeTv ,支持一般的USB摄像头以及微软Kinetic、乐视(奥比中光)astra pro。
本仓库为icar的Ros基础功能包。
icar:icar机器人ros基础功能包
icar_multi:icar多机编队ros功能包
icar_base:icar下位机程序(arduino mega2560)
icar_manufacture:icar本体制造相关文件(结构、相关硬件)
ros-drivers/joystick_drivers: ROS drivers for joysticks (github.com)
https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
roslaunch icar_gazebo icar_gazebo.launch
roslaunch icar_slam gmapping_demo.launch
roslaunch icar_navigation nav_demo.launch
roslaunch icar_teleop keyboard_teleop.launch
// 1、选择no 修改为bash
sudo dpkg-reconfigure dash
// 2、复制 robot_autostart 到/etc/init.d/文件夹下
// 3、设置权限:
sudo chmod 755 /etc/init.d/robot_autostart
// 4、将脚本加入启动列表
cd /etc/init.d
// 5、95是脚本启动的顺序号,按照自己的需要相应修改即可
sudo update-rc.d robot_autostart defaults 95
// OR、将脚本从启动列表中剔除的方法:
sudo update-rc.d -f robot_autostart remove
// 1、cd 到路径
cd robot_ws/src/icar_bringup/scripts
// 2、运行sheel脚本
sh script_comm.sh
// OR如果需要添加
// 自行添加使用 lsusb -v
sudo passws corvin
sudo passws root
// 1、安装nfs环境
sudo apt-get install nfs-common nfs-kernel-server
sudo apt install rpcbind
// 2、修改配置文件
sudo vim /etc/exports
// 加入新行,添加以下内容
/home/corvin *(insecure,rw,sync,async,no_subtree_check)
// 3、重启nfs服务
sudo /etc/init.d/rpcbind restart
sudo /etc/init.d/nfs-kernel-server restart
// 1、安装nfs环境
sudo apt-get install nfs-common nfs-kernel-server
sudo apt install rpcbind
// 2、挂载nfs
sudo mount -t nfs IP_OF_RASPI:PATH_OF_RASPI PATH_OF_UBUNTU -o nolock
// IP_OF_RASPI:树莓派的IP PATH_OF_RASPI:树莓派需要挂载的路径 PATH_OF_UBUNTU:挂载到UBUNTU中的路径
// 例子,在ubuntu 的/mnt下可以看到树莓派的文件
sudo mount -t nfs 192.168.1.100:/home/corvin /mnt -o nolock
// 1、运行
sudo gedit /etc/network/interface
// 2、粘贴以下内容("ens33"需要根据实际更改,使用ifcofig查看自己的网卡设备名字)
auto ens33
iface ens33 inet static
address 192.168.31.234
netmask 255.255.255.0
gateway 192.168.31.1
iface ens33 inet6 auto
dns-nameserver 8.8.8.8
// 3、重启
// 1、运行
sudo nano /etc/dhcpcd.conf
// 2、粘贴以下内容,注意每台机器人改成不同的IP
interface wlan0
static ip_address=192.168.31.200/24
noipv6
static routers=192.168.31.1
static domain_name_servers=192.168.31.1 8.8.8.8
interface eth0
static routers=192.168.0.1
noipv6
inform 192.168.0.10
加在 .bashrc
中
alias cm='catkin_make'
alias sb='source ~/.bashrc'
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
加在 .bashrc
中
ROS_CORE 在机器人上
export ROS_MASTER_URI= http://IP_OF_RASPBERRY:11311
export ROS_HOSTNAME= IP_OF_RASPBERRY
export ROS_MASTER_URI= http://IP_OF_RASPBERRY:11311
export ROS_HOSTNAME= IP_OF_PC
// 1、编辑文件
sudo nano /etc/apt/sources.list
// 2、注释掉之前的,复制这两行换上去
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
// 3、编辑文件
sudo nano /etc/apt/sources.list.d/raspi.list
// 4、注释掉之前的,复制这两行换上去
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
// 5、更新
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update