JdeRobot robotics technology that rocks and matters!
This is the official web page of the JdeRobot project, a software framework for developing applications in robotics, computer vision, home automation and scenarios with sensors, actuators and intelligent software.
- The last stable release, JdeRobot 5.4.0, has been released (2016/07/22).
- Drone Programming Challenge (Spanish) was successfully celebrated (2016/04/08). Follow the video of the finals, the participants programmed a drone (cat) in Python to search and pursue a moving target (mouse).
- The registration is open for the 1st edition of (online or in-person) Robot Programming course (autonomous cars) (Spanish). It will start on april 1st, 2016.
- JdeRobot attended the Google Summer of Code 2015 mentor summit at Mountain View (november 2015)
Videos of the month
Follow our YouTube Channel
|Real Kobuki robot and Hokuyo laser are now fully supported (more)||Teleoperate a real drone with a JdeRobot web application (more)|
JdeRobot is a software development suite for robotics and computer vision applications. These domains include sensors (for instance, cameras), actuators, and intelligent software in between. It has been designed to help in programming such intelligent software. It is mostly written in C++ language and provides a distributed component-based programming environment where the application program is made up of a collection of several concurrent asynchronous components. Components may run in different computers and they are connected using ICE communication middleware. Components may be written in C++, Python, Java... and all of them interoperate through explicit ICE interfaces.
JdeRobot simplifies the access to hardware devices from the control program. Getting sensor measurements is as simple as calling a local function, and ordering motor commands as easy as calling another local function. The platform attaches those calls to remote invocations on the components connected to the sensor or the actuator devices. They can be connected to real sensors and actuators or simulated ones, both locally or remotely using the network. Those functions build the API for the Hardware Abstraction Layer. The robotic application get the sensor readings and order the actuator commands using that API to unfold its behavior. Several driver components have been developed to support different physical sensors, actuators and simulators. Currently supported robots and devices:
- RGBD sensors: Kinect and Kinect2 from Microsoft, Asus Xtion
- Wheeled robots: Kobuki (TurtleBot) from Yujin Robot and Pioneer from MobileRobotics Inc.
- ArDrone quadrotor from Parrot
- Gazebo simulator
- Firewire cameras, USB cameras, video files (mpeg, avi...), IP cameras (like Axis)
- Pantilt unit PTU-D46 from Directed Perception Inc.
- Laser Scanners: LMS from SICK and URG from Hokuyo
- Nao humanoid from Aldebaran
- EVI PTZ camera from Sony
- X10 home automation devices
JdeRobot includes several robot programming tools and libraries. First, viewers and teleoperators for several robots, its sensors and motors. Second, a camera calibration component and a tunning tool for color filters. Third, VisualHFSM tool for programming robot behavior using hierarchical Finite State Machines. And several more. In addition, it also provides a library to develop fuzzy controllers, a library for projective geometry and computer vision processing.
Each component may have its own independent Graphical User Interface or none at all. Currently, GTK and Qt libraries are supported, and several examples of OpenGL for 3D graphics with both libraries are included.
JdeRobot is open-source software, licensed as GPL and LGPL. It also uses third-party software like Gazebo simulator, ROS, OpenGL, GTK, Qt, Player, Stage, GSL, OpenCV, PCL, Eigen, Ogre. It is ROS compatible!.
The last stable release is 5.4.0
We are working on:
- Compatibility with ROS robotics middleware: interoperation between ROS nodes and JdeRobot components, use of ROS bag files in recorder and replayer tools...
- Migration to Gazebo-7 simulator: revisit existing plugins and models in the new release of our favorite simulator.
Integrating Web technologies: ICE-JS, WebRTC, html5... Web viewers for our robots.
- Improving visualHFSM tool: it allows visual programming of the robot intelligence with Finite State Machines. It creates a C++ or a Python component from the visual description of the automata.
- Improving our on-line manual
- Teaching Robotics with JdeRobot
All the source code of JdeRobot project is licensed under GPL v3.
All the documentation of JdeRobot project is licensed under Creative Commons by-sa