Skip to content

Instantly share code, notes, and snippets.

View anindex's full-sized avatar

An Thai Le anindex

View GitHub Profile

ROS + Conda (mambaforge) for all-in-one environment

Motivations

Some autodiff libraries such as torch or tensorflow are preferably worked on a conda environments. Moreover, most of modern Python libraries needs to be installed on Python 3. This instruction will introduce how to install every needed libraries of ROS and project specific Python libraries in the same environment, for real world robot experiments. Currently, Panda Arm is well supported in RobotStack. Hopefully in the future they support other robot platforms like Tiago as well.

Tested specs: Ubuntu 20.04 + ROS Noetic + Panda Franka

Flexible perception pipeline manipulation for RoboSherlock (GSOC 2018)

Introduction

This project enables Robosherlock to handle multiple paralleled annotators processing branches while reserving the original capability of Robosherlock in linear execution. It enhances Robosherlock's flexibility to handle concurrent or sequential processes. Hence, it improves overall execution performance, scalability, and better error handlings. The project was done to fulfill the requirements of Google Summer of Code 2018 with IAI, University of Bremen.

The project is merged with the branch master of Robosherlock. The API is simple to use, it is a flag parallel in ROS launch file that indicates the pipeline should be executed parallel or not. However, it requires new dependency KnowRob to compile and run correctly.

Pull request: [Link]

Achievements

Multi-modal Cluttered Scene Analysis in Knowledge Intensive Scenarios (GSOC 2017)

Introduction

Unstructured information such as video, text, and audio represents the largest and fastest-growing source of information nowadays. The goal of AI is to approach the human abilities to process efficiently the vast amount of Unstructured Data in this complex real world. This project focuses on Object Hypotheses and Segmentation tasks using Symmetry Constraints in cluttered and occluded scenarios, which is developed as Rotational and Bilateral Symmetry Segmentation Analysis Engines on Robosherlock framework. This project enables RoboSherlock to operate in a knowledge-intensive real world. The project was done to fulfill the requirements of Google Summer of Code 2017.

The project is merged with the branch master. It was designed to not use any other library dependencies than the main repo. The system is now able to robustly detect rotational, bilateral symmetries and segment objects

Google Season of Docs (GSoD) 2019: RoboComp’s basic components

Description

As quoted on RoboComp GSoD website,

RoboComp is an open-source Robotics framework providing the tools to create and modify software components that communicate through public interfaces. The Components may require, subscribe, implement, or publish interfaces in a seamless way.

The robocomp repo includes a wide range of components (maintained in smaller repo named robocomp-robolab) for different robotic applications such as motor control, localization and mapping, navigation, recognition, etc. However, most of the components in robocomp-robolab repo currently lack detailed instructions on how to compile and how to use in different parameter configurations. This creates a huge obstacle for new developers who want to use components in their projects or contribute to the framework. The reason is that many components (i.e hokuyoComp) are a wrapper of external driver or libraries having

3. Regression with Decision Tree and kNN

Decision Tree Classification vs Regression

Definitions

Decision trees used in data mining are of two main types[1]:

  • Decision Tree Classifier predicts discrete label outcomes associated with data.
  • Decision Tree Regressor predicts real/continuous outcome numbers (e.g. the price of a house, or a patient's length of stay in a hospital).

Autonomous Mobile Robot (Experimental)

Introduction

The aim of this project is to create mobile robot that can navigate correctly in-door environment. The robot can scan and save surrounding environment as occupancy grid, then basing on that map, it can localize and navigate itself on scanned map. Due to these capabilites, the robot can plan a path from A to B as instructed via Rviz on global map (scanned map), it can also detect unknown obstacles during operation and plan a local path to robustly avoid them and ensure the success of navigation task.

Link to github: https://github.com/anindex/navigation-processing-base

Building robot (Hardware part)

Keybase proof

I hereby claim:

  • I am anindex on github.
  • I am anindex11 (https://keybase.io/anindex11) on keybase.
  • I have a public key ASCVBjfGN1l76zMNBJTTTnhkpWuEn0WXL6X8LAFXJjLwqgo

To claim this, I am signing this object:

@anindex
anindex / ros_ws.md
Last active June 5, 2019 10:08
Setting up ROS workspace with catkin tools and wstool
mkdir -p ~/<name>/src
cd ~/<name>
catkin init
catkin config --extend /opt/ros/<distro>