Linux罗技鼠标设置dpi

  1. 安装非官方驱动: https://github.com/PixlOne/logiops ,安装完后启动服务

    1
    
    sudo systemctl enable --now logid
  2. 执行 sudo logid 查看识别的鼠标名称

    1
    
    [INFO] Device found: G502 HERO Gaming Mouse on /dev/hidraw4:255
  3. 配置文件 /etc/logid.cfg

    1
    2
    3
    4
    5
    6
    
    devices: (
    {
        name: "G502 HERO Gaming Mouse";
        dpi: 1600;
    }
    );

这个驱动还有很多其它功能,比如 dpi 切换,功能键设置等,有需要可以看 Wiki

Linux激活键盘Fn功能

临时修改

1
echo 2 > /sys/module/hid_apple/parameters/fnmode

/sys/module/hid_apple/parameters/fnmode 写入不同数字激活不同功能:

  • 0: 禁用功能键,按 Fn + F8 等同于 F8
  • 1: 默认功能键,按 F8 触发功能键 (play/pause) ,按 Fn + F8 触发 F8
  • 2: 默认非功能键,按 F8 触发 F8 键,按 Fn + F8 触发功能键 (play/pause)

永久修改

/etc/modprobe.d/hid_apple.conf 中加上下面的配置,没有这个文件就新建一个:

WSL2配合Windows运行Gazebo

虽然当前 WSL2 通过 WSLg 已支持直接运行 Gazebo,即使启用了 GPU 硬件加速,其图形性能仍显著受限,导致仿真过程非常卡顿。因此,更推荐的方式是将 Gazebo 运行在原生 Ubuntu 系统上。如果你不想配置双系统,也可以采用以下替代方案:在 Windows 原生环境中运行 Gazebo 仿真器,同时在 WSL2 中运行 ROS 2 节点控制 Gazebo。

ROS2机器人仿真

URDF 机器人建模

URDF 使用 xml 格式描述机器人模型

首先创建一个包来保存文件 ros2 pkg create robot_describes --destination-directory=src --build-type=ament_cmake --license Apache-2.0

基础

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0"?>
<!-- 机器人名称 -->
<robot name="first_robot">
  <!-- 机器人身体部分 -->
  <link name="base_link">
    <!-- 部件的外观描述 -->
    <visual>
      <!-- 沿着自己几何中心的偏移和旋转 -->
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <!-- 几何形状 -->
      <geometry>
        <!-- 圆柱体 -->
        <cylinder radius="0.10" length="0.12"/>
      </geometry>
      <!-- 材质和颜色 -->
      <material name="white">
        <color rgba="1.0 1.0 1.0 0.5" />
      </material>
    </visual>
  </link>

  <!-- 机器人的 IMU ,惯性测量单元 -->
  <link name="imu_link">
    <!-- 部件的外观描述 -->
    <visual>
      <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
      <geometry>
        <!-- 正方体 -->
        <box size="0.02 0.02 0.02" />
      </geometry>
      <!-- 材质和颜色 -->
      <material name="black">
        <color rgba="0.0 0.0 0.0 0.5" />
      </material>
    </visual>
  </link>

  <!-- 机器人关节,用来组合机器人部件 -->
  <joint name="imu_joint" type="fixed">
    <!-- 父部件 -->
    <parent link="base_link"/>
    <!-- 子部件固定到父部件上 -->
    <child link="imu_link"/>
    <!-- 固定的位置 -->
    <origin xyz="0.0 0.0 0.03" rpy="0.0 0.0 0.0"/>
  </joint>

</robot>

使用 xacro 简化 urdf

xacro 工具可以将 xacro 描述文件转成 xml 文件,xacro 对比原生 xml 提供了一些方便的功能,比如宏

ROS2坐标变换及TF2的使用

坐标变换的含义

假设有一个小车,小车上有一个雷达,右边是一堵墙,已知小车的坐标原点 base_link 与雷达坐标原点 lase_laser 横竖距离 10cm , 既雷达相对小车的坐标为 (10, 0, 10), 雷达探测到墙体的坐标为 (60, 0, 0) ,求墙体相对小车的坐标?