ROS杂项

命令类

断网修复

sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start

ros查找导航包

rospack plugins --attrib=plugin nav_core

查看c++动态链接库具体报错信息

c++filt

ros启动动态参数服务器

rosrun rqt_reconfigure rqt_reconfigure

保存地图

rosrun map_server map_saver -f 地图名

rviz节点

apt install 无法获得锁

 sudo rm /var/lib/apt/lists/lock

查看设备端口号

ll /dev/ttyUSB*

查看消息格式

rosmsg show 

tensorflow相关

激活环境

source activate tensorflow

推出环境

 source deactivate

tensorboard查看


tensorboard --logdir=

git pull 命令 | 菜鸟教程icon-default.png?t=M4ADhttps://www.runoob.com/git/git-pull.html

参数类

关于TEB调整参数

1、关于Robot Footprint Model

        机器人模型设置的不好,会使得机器人在避障时表现的非常糟糕,具体参数设置在ros wiki上有详细的解释和办法。

2、关于碰撞、障碍参数:

        min_obstacle_dist :与障碍物期望的最小距离,这个和Robot Footprint Model联系使用,具体模型对于的min_obstacle_dist 不同,大概意思就是加入一个膨胀将小车包裹起来。

        inflation_dist :这个是障碍物周围的缓冲区,进缓冲区会导致规划器减速,不过这个值得比min_obstacle_dist大才有效。可以设置相对小一些,牺牲安全提高速度。

        include_costmap_obstacles:这个必须设置成true才能规避实时探测到的,建图时不存在的障碍物。

        costmap_obstacles_behind_robot_dist:是考虑后方n米范围内的障碍物,设置的越大,考虑范围越广,不过相对而言计算量就越大。

3、优化器的参数:

        penalty_epsilon:这个参数会为速度的约束提供一个缓冲的效果,就是在到达速度限制前会产生一定的惩罚让其提前减速达到缓冲的效果。

        weight_kinematics_forward_drive:这个参数就是倒车,不过这个参数的意思是迫使机器人只选择前进的方向,也就是权重越大,倒车惩罚越大。但是teb不会完全禁止倒车。

        weight_kinematics_turning_radius是机器人最小转向半径的权重,越大则越容易达到最小转向半径的情况。其实我们是不希望到达最小转弯半径的,会使得车辆行驶有很大的顿挫感觉。

        weight_optimaltime:这个参数是最优时间权重,如果大了,那么车会在直道上快速加速。

代价地图:costmap

        配置错误可能会出现没有本地代价地图

        commen:



footprint: [[-0.05,  -0.19], [-0.05, 0.19], [0.45, 0.19], [0.45,-0.19]]
#robot_radius: 0.105


transform_tolerance: 0.2
map_type: costmap

obstacle_layer:
 enabled: true
 obstacle_range: 5.0
 raytrace_range: 5.5
 inflation_radius: 0.2
 track_unknown_space: false
 combination_method: 1

 observation_sources: laser_scan_sensor
 laser_scan_sensor: {data_type: LaserScan, topic: scan, marking: true, clearing: true}


inflation_layer:
  enabled:              true
  cost_scaling_factor:  10.0  # exponential rate at which the obstacle cost drops off (default: 10)
  inflation_radius:     2.5  # max. distance from an obstacle at which costs are incurred for planning paths.

static_layer:
  enabled:              true
  map_topic:            "/map"

        global

global_costmap:
  global_frame: map
  robot_base_frame: base_link

  update_frequency: 10.0
  publish_frequency: 10.0
  transform_tolerance: 0.5

  static_map: true

  plugins:
    - {name: static_layer,            type: "costmap_2d::StaticLayer"}
    - {name: obstacle_layer,          type: "costmap_2d::VoxelLayer"}
    - {name: inflation_layer,         type: "costmap_2d::InflationLayer"}

 

        local:

local_costmap:
  global_frame: odom
  robot_base_frame: base_link

  update_frequency: 10.0
  publish_frequency: 10.0
  transform_tolerance: 0.5  

  static_map: false  
  rolling_window: true
  width: 3
  height: 3
  resolution: 0.05

  map_type: costmap
  observation_sources: scan
  scan: {sensor_frame: base_scan, data_type: LaserScan, topic: scan, marking: true, clearing: true}


  plugins:
   - {name: static_layer,        type: "costmap_2d::StaticLayer"}
   - {name: obstacle_layer,      type: "costmap_2d::ObstacleLayer"}

利用turtlebot创建gazebo中世界的map

1、将turtlebot3_world.launch 中的

修改为你想要扫的world。并 roslaunch

2、启动slam

roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

3、启动键盘控制

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

4、代码保存

rosrun map_server map_saver -f ~/racemap

opencv-python相关API

1、打开摄像头

import cv2

cap = cv2.VideoCapture(0)
while True:
    ret_,fram = cap.read()
    cv2.imshow('fram',fram)
    if cv2.waitKey(1)& 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

2、opencv默认的颜色排列为BGR对图片显示之前的图片颜色处理

#灰度    
gray = cv2.cvtColor(fram,cv2.COLOR_BGR2GRAY)
#hsv
hsv = cv2.cvtColor(fram,cv2.COLOR_BGR2HSV)
#rgb
rgb = cv2.cvtColor(fram,cv2.COLOR_BGR2RGB)

3、cv画图、添加字

  # 矩形
cv2.rectangle(fram, (350, 0), (500, 250), (0, 255, 0), 1)
    # 圆形
cv2.circle(fram, (255, 255), 100, (255, 0, 0), 1)
    # 加字体
cv2.putText(fram, 'python', (100, 100),cv2.FONT_HERSHEY_SCRIPT_SIMPLEX,4,(255,255,255),2,cv2.LINE_AA)

你可能感兴趣的:(ROS,路径规划,ubuntu,linux,cv)