Skip to content

Instantly share code, notes, and snippets.

View ojura's full-sized avatar
:octocat:
⏯⏺⏮⏭

Juraj Oršulić ojura

:octocat:
⏯⏺⏮⏭
View GitHub Profile
-- Copyright 2016 The Cartographer Authors
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
@ojura
ojura / CMakeLists.txt
Created June 30, 2017 09:03
Custom tool in CMake
cmake_minimum_required(VERSION 2.8.3)
project(amacal_mapping_evaluation)
find_package(catkin REQUIRED)
catkin_package()
# robot names for various robot types
set(pioneer_ROBOT_NAMES alpha pioneer)
ROS_DISTRO=lunar
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo add-apt-repository universe
sudo apt update
sudo apt install git ros-$ROS_DISTRO-ros-base ninja-build -y
mkdir -p catkin_ws/src && cd catkin_ws/src
source /opt/ros/$ROS_DISTRO/setup.bash
git clone https://github.com/googlecartographer/cartographer.git
git clone https://ceres-solver.googlesource.com/ceres-solver
/home/juraj/Downloads/clion-172.1572.3/bin/cmake/bin/cmake --build /home/juraj/cartographer_superbuild/cartographer/cmake-build-relwithdebinfo --target all -- -j 8
Scanning dependencies of target gtest
Scanning dependencies of target build_doc
Scanning dependencies of target cartographer_detect_changes
Scanning dependencies of target gmock
Scanning dependencies of target gmock_main
[ 0%] Building documentation.
[ 1%] Running C++ protocol buffer compiler on /home/juraj/cartographer_superbuild/cartographer/cartographer/transform/proto/transform.proto
[ 2%] Running C++ protocol buffer compiler on /home/juraj/cartographer_superbuild/cartographer/cartographer/kalman_filter/proto/pose_tracker_options.proto
[ 2%] Running C++ protocol buffer compiler on /home/juraj/cartographer_superbuild/cartographer/cartographer/common/proto/ceres_solver_options.proto
Extract .tar.gz with progress:
pigz -dc mysql-binary-backup.tar.gz | pv | tar -xf -
$ rgrep "[^:]cartographer::" -n
cartographer_ros/cartographer_ros/map_builder_bridge.cc:41: cartographer::common::make_unique<SensorBridge>(
cartographer_ros/cartographer_ros/map_builder_bridge.cc:70: cartographer::mapping::proto::SubmapQuery::Response response_proto;
cartographer_ros/cartographer_ros/map_builder_bridge.cc:85: cartographer::transform::ToRigid3(response_proto.slice_pose()));
cartographer_ros/cartographer_ros/map_builder_bridge.cc:96: const cartographer::mapping::Submaps* submaps =
cartographer_ros/cartographer_ros/map_builder_bridge.cc:98: const std::vector<cartographer::transform::Rigid3d> submap_transforms =
cartographer_ros/cartographer_ros/map_builder_bridge.cc:123: cartographer::common::make_unique<nav_msgs::OccupancyGrid>();
cartographer_ros/cartographer_ros/map_builder_bridge.cc:137: const cartographer::mapping::TrajectoryBuilder* const trajectory_builder =
cartographer_ros/cartographer_ros/map_builder_bridge.cc:139: const cartographer::mapping::TrajectoryB
<launch>
<arg name="robot_name" default="" />
<arg name="bag" />
<arg name="rate" default="1" />
<arg name="fullpath" value="$(eval eval('_' + '_import_' + '_(\'os\').path.abspath(arg(\'bag\'))') )" />
<param name="use_sim_time" value="true" />
<node pkg="rosbag"
type="play"
name="bag"
@ojura
ojura / pointer_printers.patch
Last active February 27, 2017 11:12
patch which enables expanding of pointers in an IDE which uses gdb
--- printers.py
+++ printers.py
@@ -106,6 +106,10 @@ class SharedPointerPrinter:
def __init__ (self, typename, val):
self.typename = typename
self.val = val
+ self.pointer = val['_M_ptr']
+
+ def children (self):
+ return [('get()', self.pointer)]
#!/usr/bin/python
import rospy
import rosbag
import os
import sys
import argparse
def remove_tf(inbag,outbag,frame_ids):
rospy.loginfo(' Processing input bagfile: %s', inbag)
rospy.loginfo(' Writing to output bagfile: %s', outbag)
# print a CASU firmware status message if in login shell
if shopt -q login_shell
then
watch -n0.1 "
date
echo 'PIDs of CASU firmware loaded on $HOSTNAME:'
pgrep casu
echo 'Press CTRL-C to dismiss'
"
fi