[JdeRobot] Presents for Christmass: my contributions to simplify developers life.

JoseMaria Cañas Plaza jmplaza at gsyc.es
Mon Dec 28 13:12:52 CET 2015


Good job Victor! Impressive set of new functionalities and
developments. Some of them are under revision for integration (like
EasyProxy), and most of them are in the way to be integrated. They
will improve the JdeRobot usability and simplify the robot programming
with our middleware.

Your new Gazebo plugin for drones, completely refactored, is awesome.
It solves the memory leak, the drone drift... and it hopefully solves
the jitter problem (between DepthImages and Pose3D) in the
flyingKinect plugin. It shows a better insight of the internals of
Gazebo.

Cheers,

JoseMaria

On Fri, Dec 25, 2015 at 11:35 PM, Victor Arribas
<v.arribas.urjc en gmail.com> wrote:
> Ho Ho Ho, Happy Christmas to all
>
> I'm feeling Santa Claus spirit, so I will here to give your presents for
> Christmas.
>
> This year there is a lot of new features that will simplify developer life.
> let's start ;)
>
>
> I present you... EasyIceConfig
>
> Are you asking God why you need to run components from a specific directory
> or at least copy ice config files to current directory just to execute?
>
> EasyIce comes to rescue you!
> It brings possibility to use a ice config file from another well-known path
> without put whole path.
>
> It hold more features. Would You Like to Know More?
>
> https://jderobot.org/Varribas-tfm/contribution/libeasyiceconfig
> https://github.com/jderobot-varribas/libeasyiceconfig/releases/tag/0.9.2
>
>
> I present you... EasyProxy
>
> Are you jaded to write again and again same lines just to raise up an Ice's
> Proxy?
> create a vanilla proxy, do an explicit cast, and evolve all in a try
> catch..., and repeat it for each adapter..."
>
> With EasyProxy create a Proxy is no more painful. No more try catch, no more
> complex initialization.
> See the example here!
>
> Related links:
>
> https://github.com/RoboticsURJC/JdeRobot/pull/269
> https://github.com/jderobot-varribas/libeasyiceconfig/releases/tag/0.9.3.1
>
>
> I present you... Single Adapter communication scheme
>
> Are you tired to do exactly same again and again for each interface?
>
> put almost same Endpoint entry for each interface
> define a lot of naming convections that every user must to known.
> create an adapter for each interface
> be obey to use a lot of port and be stuck due one was a typo
> cry every time that you want to power up several instances of same component
>
> Today is your lucky day. All this overload is not required!
> My present for you is "Single Object Adapter approach", it is highly
> recommended by Ice; so if you want not obey me, just obey they ;)
>
> Related links:
>
> https://github.com/RoboticsURJC/JdeRobot/issues/199
>
>
> I present you... New Gazebo's plugin develop scheme
>
> Are you jaded to...
>
> edit every model file when you want to add "intelligence"?
> do a plugin for each sensor?
> be stuck because code can not be reused and there is a hard dependency
> between model and code?
>
> Here you are my new not-patented develop scheme!
>
> Do a single model plugin that just gather all
>
> Gather links to allow part by part control.
> Gather every sensor through SensorManager and just connect to Update event
>
> Evolve vanilla model with intelligence layer
>
> Reuse already provided models
> Create as many variations as you wish reusing same vanilla model
>
> Do you think that I kidding you?, see a functional example of this new
> schema
>
> <?xml version="1.0" ?>
> <sdf version="1.4">
>   <model name="flyingKinect">
>     <plugin filename="libgazebo_kinectplugin.so" name="kinectplugin"/>
>     <static>true</static>
>     <include>
>         <uri>model://kinect</uri>
>     </include>
>   </model>
> </sdf>
>
> What it implies?
>
> No more manage nor clone model files (100-500 lines)
> No more almost empty SensorPlugin
> No more dedicated threads
> Nno more complex solutions to allow intercommunication.
>
> Would you like to know more about architecture? See
> [[Varribas-tfm/review_quadrotor_plugin#Quadrotor_plugin_2.0|Quadrotor_plugin_2.0]]
>
> Would you like to see a basic example? See
> https://github.com/RoboticsURJC/JdeRobot/pull/270
>
>
> I present you... Build Aliases/Groups
>
> Are you jaded to lost hours compiling entire framework? Have you ever tried
> component based build and eventually get jaded to write a infinite line of
> -Dbuild_whatever?
>
> I present you Build Aliases (or just build groups). This feature manages
> comes to rescue you, so now you can overcome it with a single -Dbuild_X.
>
> But wait! this present is forearmed.
> What happens if I want to add my own groups. Is there any risk of mess git
> if I do not be careful?
> No!, you can add all you private, dirty and incomplete job inside
> buildpresets_userdefined.cmake, this file is blacklisted and will not be
> pushed into repo.
>
> Related links:
>
> https://github.com/RoboticsURJC/JdeRobot/issues/250
> https://github.com/RoboticsURJC/JdeRobot/pull/264
>
>
> I present you... Out-of-Source Build
>
> What did you say!? out-of-source build as a new feature? I couldn't use it
> before? Why!?
>
> Yes, you are right. This was a missed feature and some one must revive it.
>
> Related links:
>
> https://github.com/RoboticsURJC/JdeRobot/issues/236
> https://github.com/RoboticsURJC/JdeRobot/pull/237
> And even more effort scattered between commits
>
>
> I present you... Incremental Releases
>
> Why when someone tell me that there is a new version at repository I must to
> uninstall current jderobot package and install it again? Why apt-get update
> do not notify me about this change?
>
> Because release system do no exists.
> So.., I present you Incremental Releases, the self-managed system to
> overcome it.
>
> Creates a two-based versioning workflow:
>
> Remove ugly '-rc1' from mainstream. Framework versioning is cleaner and
> simpler.
> Do not need to make dirty git. So framework versioning is untouched.
>
> Remove maintainer to do a lot of extra effort.
>
> remember what was last version at repository
> touch version number and revert it again because it was not planned to roll
> up
>
> Do not lie user with a new package with exactly same version number.
>
> Related links:
>
> https://github.com/RoboticsURJC/JdeRobot/pull/275
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>



-- 
Universidad Rey Juan Carlos
http://gsyc.urjc.es/jmplaza


More information about the Jde-developers mailing list