Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

3D Model combined with physics engine for RN-1

3D Humanoid robot simulation, simulated robot physics, 3D models, Humanoid robot Art
19 postsPage 1 of 21, 2
19 postsPage 1 of 21, 2

3D Model combined with physics engine for RN-1

Post by hivemind » Wed Jul 05, 2006 12:45 am

Post by hivemind
Wed Jul 05, 2006 12:45 am

I would like (with the help of others perhaps) to create an adaptive phyics engine using a 3D model of the RN-1 that would have several nice features. First off, both myself and Octovir have created 3D models of the RN-1 and those can be found in this thread along with modifications that both of us have shown. My current idea would to have an array of different models (from stock to the ones shown in the other thread-with grippers-head & leg rotation...etc) that the user ought to be select as options.

I have compiled a list of things to complete that would be needed or nice to have in the engine and simulator:

1) The choice of a physics engine (whether it be Havok reactor, EZphysics, the new microsoft engine or a doom/unreal like engine...).

2) A low poly model (i should be able to easily optimize mine) that could be implimented into the engine and have selectable features (so perhaps have multiple models, which granted makes the entire thing larger, but hdds are getting cheaper).

3) The ability to read the servo positions right off the model (which i teaching myself how to make a script to do in the next couple of days so we can probably consider this done).

4) The ability to cut/paste the servo positions so one can put them right into RoboBasic (just like the built-in 2D utility that they provide).

5) And finally the ability to run a RoboBasic program inside of the physics engine so one could test their programs either to fix mistakes, while their robot was down, or test out features (such as rotating legs) that they might not have yet.

So if anyone has comments, suggestions or just wants to help me in general with this it would be great. You can choose to do so silently (by PMing me) or just post a comment here. Most needed is probably someone who has an idea of how to put this into an easy to use interface, having a window for the physics engine and the servo readings to the side that can be copied. I think that the 3D data seems to have helped the KHR-1 and i believe that by figuring out how to make a better simulator for the RN-1 we can help the RN community.
I would like (with the help of others perhaps) to create an adaptive phyics engine using a 3D model of the RN-1 that would have several nice features. First off, both myself and Octovir have created 3D models of the RN-1 and those can be found in this thread along with modifications that both of us have shown. My current idea would to have an array of different models (from stock to the ones shown in the other thread-with grippers-head & leg rotation...etc) that the user ought to be select as options.

I have compiled a list of things to complete that would be needed or nice to have in the engine and simulator:

1) The choice of a physics engine (whether it be Havok reactor, EZphysics, the new microsoft engine or a doom/unreal like engine...).

2) A low poly model (i should be able to easily optimize mine) that could be implimented into the engine and have selectable features (so perhaps have multiple models, which granted makes the entire thing larger, but hdds are getting cheaper).

3) The ability to read the servo positions right off the model (which i teaching myself how to make a script to do in the next couple of days so we can probably consider this done).

4) The ability to cut/paste the servo positions so one can put them right into RoboBasic (just like the built-in 2D utility that they provide).

5) And finally the ability to run a RoboBasic program inside of the physics engine so one could test their programs either to fix mistakes, while their robot was down, or test out features (such as rotating legs) that they might not have yet.

So if anyone has comments, suggestions or just wants to help me in general with this it would be great. You can choose to do so silently (by PMing me) or just post a comment here. Most needed is probably someone who has an idea of how to put this into an easy to use interface, having a window for the physics engine and the servo readings to the side that can be copied. I think that the 3D data seems to have helped the KHR-1 and i believe that by figuring out how to make a better simulator for the RN-1 we can help the RN community.
Image
hivemind
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 211
Joined: Sat Jul 01, 2006 1:00 am
Location: between my computer and robot.

Post by robodude666 » Wed Jul 05, 2006 1:47 am

Post by robodude666
Wed Jul 05, 2006 1:47 am

Wonderful! I was planning on some day making a 3d sim for the RN but i dont know C++ or directx/opengl :P I will help in what ever way I can :)

A few suggestions. First of all, I am sure a few people are wondering if it will be a windows only sim. Could it be possible to also make one for linux? linux seems to be missed all the time when people/companies make software. I will really want to use this and as my laptop runs on ubuntu it would be nice to have this sim run on linux.

I think EZphysics would be a good physics engine to use. It runs on the pretty powerful and sexy Ogre (which I seen has some damn nice physics) and the api looks sorta easy to follow. Plus Limor made it and I am sure you can bug him all you want for support on how to use the api :P

You would also have to create a way to easily move around the servos and arms and such and it would have to have realistic motion range.

I do agree, it would be great to have it read the servo positions and also have like a "add positions to clipboard" with like a move24 function or a servo range and then just paste it into the built in editor or robobasic/script. Also having it able to parse the bas files and run the program would be a great plus. it would come in hangy when testing out some programs where the robot has a high chance of falling. while your at it, think its possible to just "screw" robobasic/script and have the sim program to have its own editor? im sure its not hard to do. i created a basic notepad editor a year or so ago. and someone from wowui made a lua/xml editor for World of warcraft which has coloring and numbing and all the lovely stuff.

i am pretty good at designing interfaces/skins for websites and forums and other stuff. if you need any help desinging an easy to use gui for the thing just drop me a pm :P i am on robosavvy pretty much 24/7 and i will reply within a day or less. chances are within in a hour lol.

best of luck, and keep up the good work!
Wonderful! I was planning on some day making a 3d sim for the RN but i dont know C++ or directx/opengl :P I will help in what ever way I can :)

A few suggestions. First of all, I am sure a few people are wondering if it will be a windows only sim. Could it be possible to also make one for linux? linux seems to be missed all the time when people/companies make software. I will really want to use this and as my laptop runs on ubuntu it would be nice to have this sim run on linux.

I think EZphysics would be a good physics engine to use. It runs on the pretty powerful and sexy Ogre (which I seen has some damn nice physics) and the api looks sorta easy to follow. Plus Limor made it and I am sure you can bug him all you want for support on how to use the api :P

You would also have to create a way to easily move around the servos and arms and such and it would have to have realistic motion range.

I do agree, it would be great to have it read the servo positions and also have like a "add positions to clipboard" with like a move24 function or a servo range and then just paste it into the built in editor or robobasic/script. Also having it able to parse the bas files and run the program would be a great plus. it would come in hangy when testing out some programs where the robot has a high chance of falling. while your at it, think its possible to just "screw" robobasic/script and have the sim program to have its own editor? im sure its not hard to do. i created a basic notepad editor a year or so ago. and someone from wowui made a lua/xml editor for World of warcraft which has coloring and numbing and all the lovely stuff.

i am pretty good at designing interfaces/skins for websites and forums and other stuff. if you need any help desinging an easy to use gui for the thing just drop me a pm :P i am on robosavvy pretty much 24/7 and i will reply within a day or less. chances are within in a hour lol.

best of luck, and keep up the good work!
robodude666
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 62
Joined: Sat Jun 17, 2006 1:00 am
Location: Brooklyn, New York

Post by hivemind » Wed Jul 05, 2006 2:02 am

Post by hivemind
Wed Jul 05, 2006 2:02 am

as you can see my model (in my sig or the other thread) is rigged already and its only a matter of limiting the servos to their 180 degrees, which requires me to burn a few calories and move my finger, the mouse and maybe hit a few keyboard buttons and limit their rotational degrees since they are already axis limited...

as for placing the editor inside the engine that may be easier said than done. i have heard that the current robobasic program compiles robobasic to asm inside of itself, but im not positive that this is the case. If that option is added it will be later, but i agree, it is a good idea to exclude the Hitec program totally if possible because i have noticed plenty of small glitches and such...

thanks for your help! :-)
as you can see my model (in my sig or the other thread) is rigged already and its only a matter of limiting the servos to their 180 degrees, which requires me to burn a few calories and move my finger, the mouse and maybe hit a few keyboard buttons and limit their rotational degrees since they are already axis limited...

as for placing the editor inside the engine that may be easier said than done. i have heard that the current robobasic program compiles robobasic to asm inside of itself, but im not positive that this is the case. If that option is added it will be later, but i agree, it is a good idea to exclude the Hitec program totally if possible because i have noticed plenty of small glitches and such...

thanks for your help! :-)
Image
hivemind
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 211
Joined: Sat Jul 01, 2006 1:00 am
Location: between my computer and robot.

Post by robodude666 » Wed Jul 05, 2006 4:42 am

Post by robodude666
Wed Jul 05, 2006 4:42 am

got a sort of wacky idea you could add later on maybe.
import models - be able to import models from many different programs, maya 3ds .etc, and place them around. this could be helpful for some if they want to import a model of their desk or living room or what not or just a random box to use as a step or something... just a wacky idea that could be done wayyyy later after it is total done and working :)
got a sort of wacky idea you could add later on maybe.
import models - be able to import models from many different programs, maya 3ds .etc, and place them around. this could be helpful for some if they want to import a model of their desk or living room or what not or just a random box to use as a step or something... just a wacky idea that could be done wayyyy later after it is total done and working :)
robodude666
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 62
Joined: Sat Jun 17, 2006 1:00 am
Location: Brooklyn, New York

Post by limor » Wed Jul 05, 2006 12:25 pm

Post by limor
Wed Jul 05, 2006 12:25 pm

(i first posted this on the other thread and now moved it here.. so i may be off the thread flow kind of ..)

Writing a 3D physics-enabled simulator is a very big piece of work. Having done it, here are the parts that are required:

0) The actual physics simulator - collision&inertial objects, joints and collision detection

1) binding layer between physics simulator and 3D meshes including skeletal mesh

2) Editor for interactively placing the physical objects into the skeletal mesh

3) Finally the "intelligence" that applies forces to the robot's joints (otherwise it's just a ragdoll)



0) simulator - this is a suicide missions that can not succeed as a hobby project also because it is in the process of being standardized by Microsoft, Ageia and other big names. If 6degree tensors, LCP solvers and Lagrange multipliers is your forte', join the ODE.org club or see the career opportunities section at continuousphysics.com

1) - Has been done. Binding between the 3D mesh and the simulated physics objects has been done by several game engines. Except for my own ezphysics, there are many programatic environments to bind Ogre (which is the best 3D programming abstraction library) and Ageia, ODE, Newton, Tokamak. Check out this page. Microsoft have also developed this layer or have built on top of Ageia; need to dig into this.

2) I've worked on this editor piece quite a bit with ezphysics. Haven't uploaded the source code, just the exe, cause it's a big hassle to compile but i'll be happy to share this code. I heard that Maya allows you do do something like that with Havok but Havok costs $200k. I'm sure that Ageia have invested in providing such development environment with 3Dstudio/Maya for their own engine and file formats.

3) If you choose to do 1 and 2, I don't think you'll have much energy left for making the control system for a simulated RN1 which is IMHO where all the real fun resides.. so i can highly recommend against doing 1 and 2 if this is a hobby project.


I'll be happy to help build a humaniod robot simulator.

BTW: There's at least one commercial product - http://www.cyberbotics.com/ and one big academic project - http://www.germanteam.org/GT2005.pdf
(i first posted this on the other thread and now moved it here.. so i may be off the thread flow kind of ..)

Writing a 3D physics-enabled simulator is a very big piece of work. Having done it, here are the parts that are required:

0) The actual physics simulator - collision&inertial objects, joints and collision detection

1) binding layer between physics simulator and 3D meshes including skeletal mesh

2) Editor for interactively placing the physical objects into the skeletal mesh

3) Finally the "intelligence" that applies forces to the robot's joints (otherwise it's just a ragdoll)



0) simulator - this is a suicide missions that can not succeed as a hobby project also because it is in the process of being standardized by Microsoft, Ageia and other big names. If 6degree tensors, LCP solvers and Lagrange multipliers is your forte', join the ODE.org club or see the career opportunities section at continuousphysics.com

1) - Has been done. Binding between the 3D mesh and the simulated physics objects has been done by several game engines. Except for my own ezphysics, there are many programatic environments to bind Ogre (which is the best 3D programming abstraction library) and Ageia, ODE, Newton, Tokamak. Check out this page. Microsoft have also developed this layer or have built on top of Ageia; need to dig into this.

2) I've worked on this editor piece quite a bit with ezphysics. Haven't uploaded the source code, just the exe, cause it's a big hassle to compile but i'll be happy to share this code. I heard that Maya allows you do do something like that with Havok but Havok costs $200k. I'm sure that Ageia have invested in providing such development environment with 3Dstudio/Maya for their own engine and file formats.

3) If you choose to do 1 and 2, I don't think you'll have much energy left for making the control system for a simulated RN1 which is IMHO where all the real fun resides.. so i can highly recommend against doing 1 and 2 if this is a hobby project.


I'll be happy to help build a humaniod robot simulator.

BTW: There's at least one commercial product - http://www.cyberbotics.com/ and one big academic project - http://www.germanteam.org/GT2005.pdf
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by robodude666 » Wed Jul 05, 2006 1:07 pm

Post by robodude666
Wed Jul 05, 2006 1:07 pm

I used webots before. its a pain in the ass to use. controls on it suck and there are more settings in it than there are stars in the sky. i wouldnt suggest using it unless you have a few 100 hours of free time to figure it out and make your enviroment + robot (more of a pain). since the walls dont have collision detection, you need to do like 2x or 3x the work to add collision detection (so the robot doesn't walk through the door!!) i can rant on about this program for hours. just drop me a pm and il rant on :P
I used webots before. its a pain in the ass to use. controls on it suck and there are more settings in it than there are stars in the sky. i wouldnt suggest using it unless you have a few 100 hours of free time to figure it out and make your enviroment + robot (more of a pain). since the walls dont have collision detection, you need to do like 2x or 3x the work to add collision detection (so the robot doesn't walk through the door!!) i can rant on about this program for hours. just drop me a pm and il rant on :P
robodude666
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 62
Joined: Sat Jun 17, 2006 1:00 am
Location: Brooklyn, New York

Post by Octovir » Thu Jul 06, 2006 11:25 pm

Post by Octovir
Thu Jul 06, 2006 11:25 pm

Wow, sounds daunting..

But I'd be willing to help with modeling, rigging, or optimization if you need it.
I've also done some work with unreal, but nothing mind blowing..

A sim like this would also make for a great game..
Wow, sounds daunting..

But I'd be willing to help with modeling, rigging, or optimization if you need it.
I've also done some work with unreal, but nothing mind blowing..

A sim like this would also make for a great game..
Octovir
Robot Builder
Robot Builder
User avatar
Posts: 10
Joined: Mon Apr 24, 2006 1:00 am
Location: Here, Now

Post by robodude666 » Thu Jul 06, 2006 11:30 pm

Post by robodude666
Thu Jul 06, 2006 11:30 pm

yup, cool game. especially for those of us who don't have a robonova yet.
yup, cool game. especially for those of us who don't have a robonova yet.
robodude666
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 62
Joined: Sat Jun 17, 2006 1:00 am
Location: Brooklyn, New York

Post by Gil » Wed Jul 12, 2006 9:25 am

Post by Gil
Wed Jul 12, 2006 9:25 am

limor wrote:0) simulator - this is a suicide missions that can not succeed as a hobby project also because it is in the process of being standardized by Microsoft, Ageia and other big names. If 6degree tensors, LCP solvers and Lagrange multipliers is your forte', join the ODE.org club or see the career opportunities section at continuousphysics.com

1) - Has been done. Binding between the 3D mesh and the simulated physics objects has been done by several game engines. Except for my own ezphysics, there are many programatic environments to bind Ogre (which is the best 3D programming abstraction library) and Ageia, ODE, Newton, Tokamak. Check out this page. Microsoft have also developed this layer or have built on top of Ageia; need to dig into this.

I've already gone through the Robotics kit from Microsoft and the main problem with this beta is that it has no support for advanced joints (yet) so any other types of robots except for rolling ones are impossible to simulate in it for now.

The services layer of the kit is interesting but it's also a bit wonky now so all and all not much can be done with the Robotics studio for now
limor wrote:0) simulator - this is a suicide missions that can not succeed as a hobby project also because it is in the process of being standardized by Microsoft, Ageia and other big names. If 6degree tensors, LCP solvers and Lagrange multipliers is your forte', join the ODE.org club or see the career opportunities section at continuousphysics.com

1) - Has been done. Binding between the 3D mesh and the simulated physics objects has been done by several game engines. Except for my own ezphysics, there are many programatic environments to bind Ogre (which is the best 3D programming abstraction library) and Ageia, ODE, Newton, Tokamak. Check out this page. Microsoft have also developed this layer or have built on top of Ageia; need to dig into this.

I've already gone through the Robotics kit from Microsoft and the main problem with this beta is that it has no support for advanced joints (yet) so any other types of robots except for rolling ones are impossible to simulate in it for now.

The services layer of the kit is interesting but it's also a bit wonky now so all and all not much can be done with the Robotics studio for now
Gil
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 56
Joined: Sat Apr 08, 2006 1:00 am

Post by BillB » Tue Aug 15, 2006 2:51 pm

Post by BillB
Tue Aug 15, 2006 2:51 pm

Looks like the august release of the Microsoft Robotics Studio has better support for advanced joints. (see http://robosavvy.com/modules.php?name=Forums&file=viewtopic&t=524).

It may be worth trying to import the Robonova model into the robotics studio.

Although the robotic studio does not (?currently?) provide services for RN1 - it may not be too difficult to write some code to generate Robo Basic that can be copy & pasted over to the RN1 software.
Looks like the august release of the Microsoft Robotics Studio has better support for advanced joints. (see http://robosavvy.com/modules.php?name=Forums&file=viewtopic&t=524).

It may be worth trying to import the Robonova model into the robotics studio.

Although the robotic studio does not (?currently?) provide services for RN1 - it may not be too difficult to write some code to generate Robo Basic that can be copy & pasted over to the RN1 software.
BillB
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 232
Joined: Sun Aug 06, 2006 1:00 am
Location: Hampshire, UK

Robonova Simulator

Post by robotless » Tue Sep 05, 2006 7:08 pm

Post by robotless
Tue Sep 05, 2006 7:08 pm

Hello everyone, this is my first post at robosavvy :D

Hivemind, have you made any progress with the robonova simulator?
I have been doing some research on this, and I might help you with it.
Though right now I don't have a robonova (or any other robot), I am
pretty handy with software tools, 3D graphics and C++ / C#.
Hello everyone, this is my first post at robosavvy :D

Hivemind, have you made any progress with the robonova simulator?
I have been doing some research on this, and I might help you with it.
Though right now I don't have a robonova (or any other robot), I am
pretty handy with software tools, 3D graphics and C++ / C#.
robotless
Newbie
Newbie
User avatar
Posts: 1
Joined: Mon Sep 04, 2006 1:00 am

Post by savuporo » Tue Jan 09, 2007 5:10 pm

Post by savuporo
Tue Jan 09, 2007 5:10 pm

Lots of open-source projects on Sourceforge geared towards physical robot simulation, the most active ones seem to be:
http://sourceforge.net/projects/simbob
http://sourceforge.net/projects/crisis
http://sourceforge.net/projects/simspark
http://sourceforge.net/projects/opensimulator
http://sourceforge.net/projects/roboss

I havent had time to check them all out.
There is also a "physics editor" http://www.physicseditor.com/ Scythe that allows you to build your models physical representation in WYSIWYG way. Unfortunately its save-file format is in binary currently and cannot be written by scripts ( good if you have several similar servos with similar parameters )
There is also very heavyweight Player/Stage project
playerstage.sourceforge.net/
Stage is aimed at 3D physical simulation, its rendering is being ported to popupar opensource Ogre3D c++ graphics engine and its using ODE physics library. No humanoid models built yet, AFAIK
Lots of open-source projects on Sourceforge geared towards physical robot simulation, the most active ones seem to be:
http://sourceforge.net/projects/simbob
http://sourceforge.net/projects/crisis
http://sourceforge.net/projects/simspark
http://sourceforge.net/projects/opensimulator
http://sourceforge.net/projects/roboss

I havent had time to check them all out.
There is also a "physics editor" http://www.physicseditor.com/ Scythe that allows you to build your models physical representation in WYSIWYG way. Unfortunately its save-file format is in binary currently and cannot be written by scripts ( good if you have several similar servos with similar parameters )
There is also very heavyweight Player/Stage project
playerstage.sourceforge.net/
Stage is aimed at 3D physical simulation, its rendering is being ported to popupar opensource Ogre3D c++ graphics engine and its using ODE physics library. No humanoid models built yet, AFAIK
savuporo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 26
Joined: Sun Dec 17, 2006 1:00 am

Yo couch

Post by NewBreedWarrior » Sat Apr 07, 2007 5:41 pm

Post by NewBreedWarrior
Sat Apr 07, 2007 5:41 pm

Dunno how much of help I could be but I do have quiet collection of things like 3d studio 7, auto cad electrical, auto desk, Alias Motion Builder, cyber motion 3d designer, lightwave, All Bentley Engineering software, and ANSYS CFX v 10.0....some of these are 3D, others complete cad, engineering and physics. if you ask where I got these ...Let's just say Iraq was a wild tour and the markets sold a lot of stuff.
Dunno how much of help I could be but I do have quiet collection of things like 3d studio 7, auto cad electrical, auto desk, Alias Motion Builder, cyber motion 3d designer, lightwave, All Bentley Engineering software, and ANSYS CFX v 10.0....some of these are 3D, others complete cad, engineering and physics. if you ask where I got these ...Let's just say Iraq was a wild tour and the markets sold a lot of stuff.
In the fell clutch of circumstance
I have not winced nor cried aloud.
Under the bludgeonings of chance
My head is bloody, but unbowed.
NewBreedWarrior
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 53
Joined: Fri Jul 28, 2006 1:00 am
Location: United States, Kentucky

Post by LR » Tue Apr 10, 2007 5:26 pm

Post by LR
Tue Apr 10, 2007 5:26 pm

hivemind wrote:as you can see my model (in my sig or the other thread) is rigged already and its only a matter of limiting the servos to their 180 degrees, which requires me to burn a few calories and move my finger, the mouse and maybe hit a few keyboard buttons and limit their rotational degrees since they are already axis limited...

as for placing the editor inside the engine that may be easier said than done. i have heard that the current robobasic program compiles robobasic to asm inside of itself, but im not positive that this is the case. If that option is added it will be later, but i agree, it is a good idea to exclude the Hitec program totally if possible because i have noticed plenty of small glitches and such...

thanks for your help! :-)


Hi hivemind,

I would like to include your RN-1 models into Marilou Robotics Studio, with physics behaviors (physics + servos) . What do you think about that ? would you agree me to do that ?

Marilou is free during BETA, and will be free for personnal use (non commercial, at home).

Thank you.
hivemind wrote:as you can see my model (in my sig or the other thread) is rigged already and its only a matter of limiting the servos to their 180 degrees, which requires me to burn a few calories and move my finger, the mouse and maybe hit a few keyboard buttons and limit their rotational degrees since they are already axis limited...

as for placing the editor inside the engine that may be easier said than done. i have heard that the current robobasic program compiles robobasic to asm inside of itself, but im not positive that this is the case. If that option is added it will be later, but i agree, it is a good idea to exclude the Hitec program totally if possible because i have noticed plenty of small glitches and such...

thanks for your help! :-)


Hi hivemind,

I would like to include your RN-1 models into Marilou Robotics Studio, with physics behaviors (physics + servos) . What do you think about that ? would you agree me to do that ?

Marilou is free during BETA, and will be free for personnal use (non commercial, at home).

Thank you.
LR
Robot Builder
Robot Builder
User avatar
Posts: 7
Joined: Tue Feb 13, 2007 1:00 am

Robonova 3d Model

Post by aarar » Tue Apr 20, 2010 9:59 pm

Post by aarar
Tue Apr 20, 2010 9:59 pm

Can someone post a 3Ds Max version of Robonova's model please?
Can someone post a 3Ds Max version of Robonova's model please?
aarar
Newbie
Newbie
Posts: 1
Joined: Tue Apr 20, 2010 9:37 pm

Next
19 postsPage 1 of 21, 2
19 postsPage 1 of 21, 2