Rotation Average

What is Rotation Averaging?

Problem1

Given a set of rotation matrices \(C_i, i=\{1,2,...,n\}\), the average of them is ? Rotation Averaging is to calculate the average of a set of rotation matrices. Averaging is to get the best estimate of all rotations. (Single rotation averaging)

Or equivalently, Rotation Averaging is the problem of estimating a set of \(n\) unknown orientations \(R_1,...,R_n \in SO(d)\) from noisy measurements \(\bar{R} \in SO(d)\) of the relative rotations \(R_i^{-1}R_j\) between them. (Multi rotation averaging)

In practical the rotation averaging problem could be categoried into : Single rotation averaging、Multi rotation averaging and Conjugate rotation averaging.

ROS basic usage and manager

ROS编译

  • catkin_make是cmake,make的进一步封装。路径位于workspace下,src之上使用:catkin_makeros会自己找到src下面的源代码,并开始build,如果src下面有好几个源代码,就通过DCATKIN_WHITELIST_PACKAGES指定一个就行:
1
catkin_make -DCATKIN_WHITELIST_PACKAGES="package1;package2"
  • 安装则catkin_make install, 使用catkin_make -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy install指定要安装在哪里。

  • 清理安装文件catkin_make clean

Docker用法进阶

泡泡机器人SLAM与你一同成长

使用之前先看看本地都有哪些镜像和容器。

1
sudo docker ps -a

查看现有容器以及状态。

1
2
3
4
CONTAINER ID   IMAGE                                              COMMAND                  CREATED         STATUS                   PORTS                                       NAMES
0ac8c062fa10 pointclouddl:segmentation "/bin/sh -c 'service…" 8 minutes ago Up 8 minutes 6006/tcp, 50051/tcp, 0.0.0.0:2224->22/tcp brave_kilby
cd8b9c9c5b07 stereolabs/zed:3.0-gl-devel-cuda10.0-ubuntu18.04 "/bin/bash" 4 weeks ago Exited (0) 5 hours ago jolly_feynman
af07110a5157 stereolabs/kalibr "/ros_entrypoint.sh …" 4 weeks ago Exited (0) 4 weeks ago modest_leakey

e.g.现有用于laser slam的镜像, 设置了界面,ssh,基于amazinghao/ubuntu:graph_slam_clean镜像。

1
2
CONTAINER ID   IMAGE                                COMMAND          CREATED         STATUS         PORTS                            NAMES
fe7323d95d8f amazinghao/ubuntu:graph_slam_clean "./startup.sh" 9 seconds ago Up 7 seconds 22/tcp, 0.0.0.0:5900->5900/tcp laser_slam_env

一些容器内部设置必须在创建的时候就设置好,不然就只能重新创建。比如端口映射,文件夹挂载,设置别名,虚拟内存设置,时区设置等。

VS开发Tricks

用户宏

  由于在开发时不可避免的会遇到多个环境,在不同环境之间进行切换是一个很麻烦的事情,因此使用用户宏可以很好的帮助我们进行环境切换和别名替换,便于多人协同开发。
在属性管理器中选中任意配置环境中的Microsoft.Cpp.x64.user ,弹出如下页面: 用户宏

Docker可视化界面

泡泡机器人SLAM与你一同成长

可视化

其实关键就是添加一个可视化的应用,如X11 apps (and GL), is the key for display inside the docker,e.g.

1
2
3
4
5
6
7
8
#!/bin/bash
# This file is covered by the LICENSE file in the root of this project.
docker build -t api --build-arg uid=$(id -g) --build-arg gid=$(id -g) .
docker run --privileged \
-ti --rm -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $1:/home/data/ \
api
1
docker run --privileged -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/amazinghao/Data:/home/data/ api
  • -e DISPLAY=$DISPLAY,after this the gui inside the docker will show in the host machine

  • --privileged,will make all extend equippment available for the docker

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×